İkilikten Onaltılığa Dönüştürücü nedir?
Bu araç, ikilik tabanda (taban 2; yalnızca 0 ve 1 rakamlarını kullanır) yazılmış bir sayıyı onaltılık tabana (taban 16; 0-9 rakamları ile A-F harfleri) çevirir. Onaltılık sistem; yazılım geliştirmede, bellek adreslerinde, renk kodlarında ve hata ayıklamada yaygın olarak kullanılır çünkü ikilik veriyi çok daha derli toplu gösterir: her dört bitlik grup, tam olarak tek bir hex basamağına karşılık gelir.
Nasıl kullanılır?
11010110 gibi bir ikilik sayıyı giriş kutusuna yazın veya yapıştırın, ardından gönderin. Boşluklar ve geçersiz karakterler dikkate alınmaz; yani 1101 0110 şeklinde yazsanız da çalışır. Sonuç ekranında onaltılık değer, buna karşılık gelen ondalık değer ve bit sayısı görüntülenir.
Formülün açıklaması
Dönüşüm, \(16 = 2^4\) eşitliğine dayanır. Algoritma, önce ikilik dizinin uzunluğu 4'ün katı olana kadar soluna sıfır ekler, ardından sağdan başlayarak diziyi "nibble" adı verilen 4 bitlik gruplara böler. Her nibble,
$$\text{Hex}_{16} = \sum_{i=0}^{n-1} d_i \cdot 16^{i}, \quad d_i \in \{0\text{–}9,\,A\text{–}F\} \;\leftarrow\; \text{Binary (base 2)}$$biçiminde, her nibble 8·b3 + 4·b2 + 2·b1 + b0 formülüyle hesaplanan, 0 ile 15 arasında bir değerdir ve bu değer tek bir hex basamağına (önce 0-9, sonra A-F) eşlenir. Basamakları yan yana dizdiğinizde onaltılık sonuca ulaşırsınız.
Örnek üzerinden çözüm
11010110 sayısını ele alalım. Nibble'lara ayıralım: 1101 ve 0110. Birincisi \(8+4+0+1 = 13 = D\) eder. İkincisi ise \(0+4+2+0 = 6\) eder. Yani onaltılık sonuç D6 olur; bu da ondalıkta 214'e karşılık gelir.
İkili Nibblet Hex Dijit Arama Tablosu
İkiliyi onaltılıya dönüştürmenin en hızlı yolu, bitleri dörtlü gruplara (bunlara nibblet denir) bölüp her nibblet'i tek bir hex dijit ile değiştirmektir. \(2^4 = 16\) olduğundan, her 4 bitlik örüntü tam olarak 16 hex dijitinden birine eşlenir. Aşağıdaki tabloyu ezberleme veya referans alma yoluyla, herhangi bir ikili sayıyı nibblet'e göre dönüştürebilirsiniz; hiç bölme işlemi gerekmez.
| 4 Bitlik İkili (nibblet) | Onlu (taban 10) | Hex Dijit (taban 16) |
|---|---|---|
| 0000 | 0 | 0 |
| 0001 | 1 | 1 |
| 0010 | 2 | 2 |
| 0011 | 3 | 3 |
| 0100 | 4 | 4 |
| 0101 | 5 | 5 |
| 0110 | 6 | 6 |
| 0111 | 7 | 7 |
| 1000 | 8 | 8 |
| 1001 | 9 | 9 |
| 1010 | 10 | A |
| 1011 | 11 | B |
| 1100 | 12 | C |
| 1101 | 13 | D |
| 1110 | 14 | E |
| 1111 | 15 | F |
Çalışılmış örnek: 11010110 baytı 1101 ve 0110 şeklinde bölünür. Tabloya göre bunlar D ve 6 değerlerine eşlenir ve hex değer D6'yı verir; bu da onlu 214 değerine eşittir. Eğer ikili sayının uzunluğu 4'ün katı değilse, gruplandırmadan önce sol tarafına sıfırlar ekleyin (örneğin 101101, 0010 1101 → 2D olur).
Ana Terimler
- Bit
- Dijital bilgilerin en küçük birimi; 0 veya 1 olmak üzere tek bir ikili değer içerir. Sözcük "ikili rakam" ifadesinin kısaltmasıdır.
- Nibblet
- Dörtlü bir bit grubu. Dört bit \(2^4 = 16\) olası değeri temsil ettiğinden, bir nibblet tam olarak bir heksadesimal dijite karşılık gelir; işte bu da ikili-hex dönüşümünü bu kadar doğrudan yapar.
- Bayt
-
Sekiz bitin bir grubu (iki nibblet). Bir bayt \(2^8 = 256\) olası değer içerir ve tam olarak iki hex dijit olarak yazılır; örneğin
11111111=FF= 255. - Taban / Radiks
- Pozisyonel bir sayı sisteminin kullandığı farklı dijit sembollerinin sayısı ve basamak değerleri arasındaki çarpan. İkili taban 2, onlu taban 10, heksadesimal ise taban 16'dır. Taban \(b\)'de, \(i\) pozisyonundaki dijit (sağdan 0'dan başlayarak) \(b^{i}\) ağırlığını taşır.
- İkili (taban 2)
- Yalnızca 0 ve 1 rakamlarını kullanan bir sayı sistemi; burada her konum iki'nin bir kuvvetini temsil eder. Dijital elektronik devrelerin açık/kapalı durumlarını yansıtır; bu da bilgisayarların doğal dilidir.
- Onlu (taban 10)
- 0'dan 9'a kadar rakamlar kullanan gündelik sayı sistemi; burada her konum on'un bir kuvvetini temsil eder. İkili ve hex değerleri karşılaştırırken ortak referans noktası görevi görür.
- Heksadesimal (taban 16)
- Onaltı dijit kullanan sayı sistemi: 0–9 ve ardından A–F (A=10, B=11, C=12, D=13, E=14, F=15). Sıkılığı — her nibblet'e bir hex dijit — uzun ikili dizeleri insanlar için okumayı ve yazmayı çok daha kolay hale getirir.
- MSB / LSB
- En Anlamlı Bit, en soldaki bittir; en büyük basamak değerini (iki'nin en yüksek kuvvetini) taşır. En Az Anlamlı Bit, en sağdaki bittir; en küçük değeri (\(2^0 = 1\)) taşır. Aynı "en anlamlı/en az anlamlı" fikri hex'teki bütün dijitlere de uygulanır.
- 0x Ön Eki
-
Geleneksel bir işaretçi; bir sayının önünde yazılır ve değerin heksadesimal olarak ifade edildiğini belirtir — örneğin
0xD6hex değer D6'yı (onlu 214) anlamına gelir; "D6" rakamlarını başka bir tabanda değil. C, Java ve Python gibi programlama dillerinde yaygın olarak kullanılır. İkili de benzer şekilde0bön eki ile yazılır.
Sıkça Sorulan Sorular
Bit sayısı 4'e tam bölünmezse ne olur? Dönüştürücü, sola otomatik olarak sıfır ekler; böylece 1010110 sayısı 0101 0110 = 56 haline gelir.
Baştaki sıfırları işler mi? Evet — baştaki sıfırlar nihai hex çıktısından kaldırılır, ancak değeri değiştirmezler.
Çıktı büyük harfle mi gösterilir? A-F hex basamakları, alışılageldiği üzere büyük harfle gösterilir ve okunaklı olması için başına 0x ön eki eklenir.