Mikrodenetleyiciler için İkili/Sekizlik/Onaltılık

İçindekiler

Binary, Octal, Decimal and Hexadecimal Number System

İkili sistem nedir?

İkili sayı sistemi, dört sayı sisteminden biri olan ve Gottfried Leibniz tarafından icat edilen 2 tabanlı bir sayı sistemidir. Bu sistemde, genellikle 0 ve 1 olmak üzere iki farklı sembolle gösterilir.

Binary Number System
Binary Number System

Dijital elektronik devrelerde, mantık kapılarının uygulanmasında doğrudan ikili sistem kullanılır; bu sistem, modern bilgisayarlarda ve bilgisayara dayalı cihazlarda da kullanılmaktadır. Her bir sayıya bit (Binary digit kelimesinin kısaltması) denir.

Boole mantığında, tek bir ikili basamak yalnızca Doğru (1) veya Yanlış (0) değerlerini temsil edebilir; ancak, büyük sayıları temsil etmek ve karmaşık işlevleri gerçekleştirmek için birden fazla ikili basamak kullanılabilir; herhangi bir tamsayı ikili sistemde temsil edilebilir.

Dijital veri belleği, depolama, işleme ve iletişimde, 0 ve 1 değerleri bazen sırasıyla "düşük seviye" ve "yüksek seviye" olarak adlandırılır.

Binary Represents High Level and Low Level in Digital Circuit
Binary Represents High Level and Low Level in Digital Circuit

"İkili" terimi, derlenmiş yazılım programlarını tanımlamak için de kullanılabilir; bir program derlendiğinde, bilgisayarın işlemcisi (CPU) tarafından çalıştırılabilen "makine kodu" adı verilen ikili veriler içerir.

Sekizlik sistemi nedir?

OCT veya O olarak kısaltılan sekizlik sayı sistemi, tabanı 8 olan bir sayı sistemidir. Bu sistemde 0, 1, 2, 3, 4, 5, 6, 7 olmak üzere sekiz basamak kullanılır; 7'den sonra sayı 0'a döner ve bir üst basamaktaki sayı 1 artar. Bazı programlama dillerinde, başındaki 0 rakamı genellikle sayının sekizlik sistemde olduğunu gösterir. Sekizlik sayılar ve ikili sayılar bit bazında birbirine karşılık gelir (bir sekizlik rakamı üç ikili rakama karşılık gelir), bu da sekizlik sistemini bilgisayar dillerinde kullanışlı kılar.

Sekizlik, 12 bit, 24 bit veya 36 bit kelime uzunlukları kullanan PDP-8, ICL 1900 ve büyük IBM ana bilgisayarları gibi bilgisayar sistemlerinde yaygın olarak kullanılmıştır. Bu sistemler, ideal ikili kelime uzunlukları 3'ün katları olduğu için sekizlik tabanlıdır (her sekizlik basamak üç ikili basamağı temsil eder). Dört ila on iki basamağın gösterilmesi, makinenin tamamını özlü bir şekilde temsil eder. Ayrıca, basamaklar dijital ekranlar, yedi segmentli ekranlar ve operatör kontrol panelleri için hesap makineleri aracılığıyla gösterilebildiğinden maliyetleri de düşürür. İkili ekranlar çok karmaşıktır ve ondalık ekranlar karmaşık donanım gerektirirken, onaltılık ekranlar daha fazla basamağın gösterilmesini gerektirir.

Binary to Octal
Binary to Octal

Bir onaltılık basamak dört ikili basamağa karşılık geldiğinden, ikili sayıları ifade etmek için onaltılık sistem daha elverişlidir. Bu nedenle, sekizlik sistemin kullanımı onaltılık sistem kadar yaygın değildir. Bazı programlama dilleri sayıları sekizlik gösterimle ifade etme olanağı sunar ve birkaç eski Unix uygulaması hâlâ sekizlik sistemi kullanmaktadır. Bilgisayar sistemleri, içsel olarak ikili sistemi temel alarak sayı sistemi dönüşümlerine ihtiyaç duyar. İkili, sekizli ve ondalık sayı sistemleri arasındaki dönüşümler programlama sırasında gerçekleştirilir ve ikili ve ondalık sistemlere odaklanan FORTRAN77 bu dönüşümleri yönetir.

Bununla birlikte, tüm modern bilgi işlem platformları 16, 32 veya 64 bitlik sistemler kullanır; 64 bitlik platformlar ise 8 bitlik baytlara bölünür. Bu sistemlerde, her bayt gereksinimini üç sekizlik basamak karşılar; en önemli sekizlik basamak, iki ikili basamağı temsil eder (uygunsa bir sonraki bayt için +1 ile). 16 bitlik kelimeleri sekizlik olarak temsil etmek 6 basamak gerektirir, ancak en önemli sekizlik basamak yalnızca 1 ikili basamağı (0 veya 1) temsil eder. Bu sınırlama, 4 bitlik sekizlik basamaklara yol açtığı için baytların okunmasını zorlaştırır.

Sonuç olarak, iki onaltılık basamak bir baytı tam olarak belirlediği için, programlama dillerinde artık onaltılık sistem daha yaygın olarak kullanılmaktadır. İkilinin kuvvetleri ve kelime boyutlarına sahip platformlar, komutları daha anlaşılır hale getirir. Her yerde bulunan x86 mimarisi buna bir örnektir, ancak bu mimaride sekizlik sistemi nadiren kullanılır. Bununla birlikte, sekizlik sistemi, 2, 3 ve 3 bitlere bölünen ModRM baytı gibi belirli ikili kodlamaları tanımlamak için yararlı olabilir.

Ondalık nedir?

Genellikle onluk sistem olarak adlandırılan ondalık sistem, her on birimin bir üst birime karşılık geldiği bir sayma yöntemidir. İlk basamak 10^0, ikinci basamak 10^1, N'inci basamak ise 10^(N-1) konum değerine sahiptir. Bu sistemde bir sayının değeri, her bir basamağın (değer × konum ağırlığı) toplamından oluşur.

Ondalık sayma yöntemi, günlük yaşamda en yaygın olarak kullanılan yöntemdir. Bu sistemde, bitişik birimler arasında onluk artışlar bulunur ve bu da ondalık gösterimin temelini oluşturur. Bu durum, muhtemelen insanların genellikle on parmağa sahip olması ve bunun ondalık sistemi kullanan aritmetiğin gelişimini etkilemesinden kaynaklanmaktadır. Aristoteles, insanların genellikle on parmağa sahip olmalarının anatomik gerçeği nedeniyle ondalık sistemi kullandıklarını gözlemlemiştir.

Decimal System (Hindu-Arabic Number System)
Decimal System (Hindu-Arabic Number System)

Tarihsel olarak, Babil altmışlık (60 tabanlı) ve Maya yirmi tabanlı (20 tabanlı) sayı sistemleri hariç olmak üzere, bağımsız olarak geliştirilen yazılı sayı sistemlerinin çoğu ondalık tabanı kullanıyordu. Ancak bu ondalık sistemler her zaman konumsal sayı sistemleri değildi.

"Onluk" terimi, on anlamına gelen Latince "decem" kelimesinden türemiştir. Onluk sayma yöntemi, yaklaşık 1.500 yıl önce Hintli matematikçiler tarafından icat edilmiş ve daha sonra Araplar tarafından 11. yüzyıla aktarılmıştır. Bu yöntem, iki ilkeye dayanır: konumsal gösterim ve on tabanlı temsil. Tüm sayılar on temel sembolden oluşur ve bir birim on'a ulaştığında bir sonraki konuma taşınır, bu da bir sembolün konumunu çok önemli hale getirir. Temel semboller 0'dan 9'a kadar olan rakamlardır.

Onun katlarını temsil etmek için, rakamlar bir konum sola kaydırılır ve arkasına sıfır eklenir; böylece 10, 20, 30 vb. elde edilir. Benzer şekilde, yüzün katları için de rakamlar tekrar kaydırılır: 100, 200, 300 vb. Onun kesirlerini ifade etmek için rakamlar sağa kaydırılır ve gerektiğinde sıfırlar eklenir: 1/10, 0,1; 1/100, 0,01; 1/1000, 0,001 olur.

Onaltılık nedir?

Onaltılık (kısaltması hex veya alt simge 16 olan) 16 tabanlı bir sayı sistemidir; bu sistemde her 16 birim, 1'e eklenir. Genellikle 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 rakamları ve A, B, C, D, E, F (a, b, c, d, e, f) harfleriyle temsil edilir. Bunlar arasında: A~F, 10~15'i temsil eder; bunlara onaltılık sayılar denir.

Hexadecimal Number System
Hexadecimal Number System

Örneğin, ondalık sistemdeki 57 sayısı ikili sistemde 111001, onaltılık sistemde ise 39 olarak yazılır. Günümüzün onaltılık sistemi, bilgisayar alanında yaygın olarak kullanılmaktadır, çünkü 4 bit'i (Bit) ayrı onaltılık sayılara dönüştürmek zor değildir. 1 bayt, 2 ardışık onaltılık sayı olarak gösterilebilir. Ancak, bu karışık gösterim kafa karıştırıcıdır ve gösterilmesi için bazı önekler, sonekler veya alt simgeler gerektirir.

Ondalık Sayıdan İkili Sayıya

Bir ondalık sayıyı ikili sayıya dönüştürmek, tamsayı ve kesirli kısımların ayrı ayrı dönüştürülmesini ve ardından birleştirilmesini gerektirir.

Tamsayı kısmı için, "2'ye bölme ve kalanları tersine çevirme" yöntemi kullanılır. Prosedür şu şekildedir: Ondalık tamsayıyı 2'ye bölerek bir bölüm ve bir kalan elde edin. Bölüm sonucunu tekrar 2'ye bölün ve bölüm sonucu 1'den küçük olana kadar bu işlemi devam ettirin. Ardından, başlangıçta elde edilen kalanları ikili sayının en düşük anlamlı bitleri olarak, daha sonra elde edilen kalanları ise en yüksek anlamlı bitleri olarak alın ve bunları ters sırayla düzenleyin.

DecimalBinary
00
11
210
311
4100
5101
6110
7111
81000
91001

Örneğin, ondalık sayı 1'i ikili sayıya dönüştürdüğümüzde sonuç 1B olur (burada B, ikili sayı sonekini ifade eder). Ondalık sayı 2 için ise, 2'ye ulaştığımızdan 1'i taşıyarak sonuç olarak 10B ikili sayısını elde ederiz. Benzer şekilde, ondalık sayı 5'i ikili sayıya dönüştürürken, 2'nin 10B olduğu için 3, 10B + 1B = 11B, 4, 11B + 1B = 100B ve 5, 100B + 1B = 101B olur. Bu örüntüyü sürdürürsek, ondalık sayı 254 olduğunda, ikili gösterimi 11111110B olur.

İkili sayıları ondalık sayılara dönüştürürken genel bir kural çıkarabiliriz. İkili sayının en düşük değerli bitinden başlayıp geriye doğru ilerleyerek, her bit 2'nin n'inci kuvvetini temsil eder; burada n, bitin sondan itibaren konumunu gösterir. Burada n, 0'dan itibaren saymaya başlar. Bir ikili bitin değeri 1 ise, toplama katkıda bulunur; 0 ise katkıda bulunmaz. Örneğin, hesaplama sürecini takip ederek 11111110B ikili sayısından ondalık sayıyı tersine hesaplayalım:

0*20+1*21+1*22+1*23+1*24+1*25+1*26+1*27=254

Bilgisayarlar Neden İkili Sistemi Kullanır?

Öncelikle, ikili sayı sistemi yalnızca iki basamak kullanır: 0 ve 1. Dolayısıyla, iki farklı kararlı duruma sahip herhangi bir bileşen, bir sayının belirli bir bitini temsil etmek için kullanılabilir. Aslında, iki farklı kararlı duruma sahip pek çok bileşen vardır. Örneğin, bir neon lambanın "açık" ve "kapalı" durumları; bir anahtarın "açık" ve "kapalı" durumları; bir voltajın "yüksek" ve "düşük", "pozitif" ve "negatif" durumları; devredeki "delik yok", "sinyal" ve "sinyal yok" durumları; manyetik malzemelerin güney ve kuzey kutupları vb. Liste uzayıp gider. Bu farklı durumları sayıları temsil etmek için kullanmak kolayca uygulanabilir. Sadece bu da değil, daha da önemlisi, bu iki tamamen farklı durum sadece niceliksel olarak değil, niteliksel olarak da farklıdır. Bu şekilde, makinenin parazit önleme yeteneği büyük ölçüde artırılabilir ve güvenilirlik iyileştirilebilir. İki durumdan fazlasını temsil edebilen basit ve güvenilir bir cihaz bulmak çok daha zordur.

İkincisi, ikili sayı sisteminin dört aritmetik kuralı çok basittir. Dahası, dört aritmetik işlemin tümü nihayetinde toplama ve kaydırmaya indirgenebilir, böylece elektronik bilgisayardaki aritmetik birimin devresi de çok basit hale gelmiştir. Sadece bu da değil, devre basitleştirilir ve hız artırılabilir. Bu da ondalık sayı sistemiyle karşılaştırılamaz.

Üçüncüsü, elektronik bilgisayarlarda ikili gösterimlerin kullanılması ekipman tasarrufu sağlar. Üçlü sistemin en fazla ekipman tasarrufu sağladığı, bunu ikili sistemin izlediği teorik olarak kanıtlanabilir. Ancak, ikili sistemin üçlü sistem dahil diğer ikili sistemlerin sahip olmadığı avantajları olduğundan, çoğu elektronik bilgisayar hala ikili sistemi kullanmaktadır. Ayrıca, ikili sistemde sadece "0" ve "1" olmak üzere iki sembol kullanıldığından, makinedeki mantık devrelerini analiz etmek ve sentezlemek için Boole cebiri kullanılabilir. Bu, elektronik bilgisayar devrelerini tasarlamak için kullanışlı bir araç sağlar. Dördüncüsü, ikili semboller "1" ve "0", mantık işlemlerinde "doğru" ve "yanlış" ile tam olarak eşleşir; bu da bilgisayarların mantık işlemlerini gerçekleştirmesi için elverişlidir.

Ondalık, İkili ve Onaltılık

Onaltılık sistem, ikili sisteme benzer; aralarındaki temel fark, onaltılık sistemin "onaltı tabanlı" bir sistem izlemesi ve her on altı sayının bir grup oluşturmasıdır. Dikkat edilmesi gereken bir diğer önemli nokta ise, 0 ile 15 arasındaki ondalık sayıların onaltılık sistemde 0 ile 9 arasında temsil edilmesi ve ardından A, B, C, D, E, F harflerinin gelmesidir; burada ondalık sistemdeki 10, onaltılık sistemdeki A'ya, 11 ise B'ye karşılık gelir ve bu şekilde 15'e kadar F'ye kadar devam eder.

Genellikle onaltılık sayıları, sayının onaltılık formatta olduğunu belirtmek için sonuna 'H' son eki ekleyerek gösteririz, örneğin AH, DEH vb. Burada harflerin büyük/küçük olması önemli değildir. C dilinde programlama bağlamında, onaltılık sayılar "0xA" veya "0xDE" şeklinde yazılmalıdır; burada "0x" öneki onaltılık olduğunu belirtir.

Onluk ve onaltılık sayılar arasındaki dönüştürme burada ele alınmamaktadır, çünkü kurallar onluk ve ikili sayılar arasındaki dönüştürmeye benzerdir. Onluk, ikili ve onaltılık sayılar arasında dönüştürme konusunda yetkin olmak çok önemlidir, çünkü bu beceriler özellikle C kullanılarak yapılan mikrodenetleyici programlamasında yaygın olarak kullanılmaktadır.

Mikrodenetleyici programlamada sıklıkla kullanılan 0 ile 15 arasındaki sayılar için tipik dönüştürme işlemi, önce ikili sayıyı ondalık sayıya, ardından ondalık sayıyı onaltılık sayıya dönüştürmeyi içerir. Şu anda bu dönüştürme işlemlerini hatırlamakta zorlanıyorsanız, çalışmalarınızı ilerlettikçe hafızanızı güçlendirebilirsiniz.

İşte 0 ile 15 arasındaki ikili, ondalık ve onaltılık sayıların dönüştürme tablosu:

DecimalBinaryHexadecimal
000000
100011
200102
300113
401004
501015
601106
701117
810008
910019
101010A
111011B
121100C
131101D
141110E
151111F

Abone ol

Aylık blog güncellemeleri, teknoloji haberleri ve vaka analizleri almak için abone listemize katılın. Asla spam göndermeyeceğiz ve istediğiniz zaman aboneliğinizi iptal edebilirsiniz.

Scroll to Top

Instant Quote