Hexadecimal - Sekizli Dönüştürücü

Onaltılık tabandaki verileri ikili basamak köprüsüyle sekizli sayı sistemine çevir.

Ağ donanımlarının MAC adreslerinde veya IPv6 satırlarında onaltılık biçimi sıklıkla görürsün. Sekizli taban ise güncel yazılımlarda daha seyrek karşına çıkar. Her iki sistem de ikili bit dizilimlerinin gruplanmasıyla oluşur, ancak hex ve sekizli değerleri birbirine bağlamak onluk tabana çevirmekten farklı bir gruplama mantığı gerektirir.

Hexadecimal ve sekizli tabanda bit gruplama farkı

Onaltılık sistem ikili dizilimleri dörder bitlik kümeler halinde ele alır, çünkü dört bit 0000 ile 1111 arasında tam on altı farklı dizilim sunar. Sekizli sistem ise bitleri üçerli kümeler halinde işler; üç bit 000 ile 111 arasında toplam sekiz farklı kombinasyon oluşturur.

İki taban da ikili basamakları daha kısa göstermenin birer yoludur. Bir hex basamağını doğrudan tek bir sekizli basamağa dönüştürememenin nedeni, dört ve üç sayılarının bu hesapta örtüşen ortak bir çarpana sahip olmamasıdır. Bu yüzden önce veriyi ikili tabana açmak, ardından yeniden kümelere ayırmak gerekir.

Bir bayt sınırında hex ve sekizli basamakların yerleşimi

Bir bayt sekiz bitten meydana gelir ve sekiz sayısı dörde tam bölünür. Bu nedenle tek bir bayt her zaman 00 ile FF arasında tam iki hex basamağıyla gösterilir. Ancak sekiz sayısı üçe tam bölünmez; bu yüzden bir bayt sekizli tabanda üç basamağa ihtiyaç duyar ve değer aralığı 000 ile 377 arasında kalır.

En yüksek bayt değerini ele alırsak, onluk tabandaki 255 değeri hex düzeninde tam iki karakterle FF olarak yazılır. İkili karşılığı 11111111 biçimindedir. Bu sekiz biti sağdan başlayarak üçerli bloklara ayırdığında 011 111 111 dizilimini elde edersin. Buradan (3 × 64) + (7 × 8) + 7 = 255 hesabı ile 377 sekizli sonucuna ulaşırsın. Aynı büyüklük iki yerine üç basamak kaplar ve en solda 3 gibi kısıtlı bir değer alır.

Hex sekizli dönüşümü adım adım hesaplama

  1. Girdiğin her hex basamağını 4 bitlik ikili denkliğine dönüştür.
  2. Elde ettiğin 4 bitlik grupları baştan sona tek bir ikili dizi halinde birleştir.
  3. Diziyi sağ uçtan başlayarak üçer bitlik parçalara böl, en soldaki parça eksik kalırsa başına sıfır ekle.
  4. Her 3 bitlik bloğu 0 ile 7 arasındaki sekizli rakam karşılığına çevir.
  5. Dönüştür butonuna basarak sunucudan dönen nihai sekizli basamakları soldan sağa oku.

Farklı tabanlarda sayı örnekleri tablosu

DecimalBinaryHexOctal
7011177
151111F17
31111111F37
631111113F77
25511111111FF377

Hexadecimal sekizli dönüşümü hakkında sorular

Eski sistemlerde hex sekizli dönüşümü nerede kullanılır?

Daha çok eski Unix kayıtlarında, retro bilgisayar mimarilerinde ve dosya izinlerini sekizli formatta tutan özel dosya yapılarında bu çevrime rastlanır.

İkili tabana başvurmadan doğrudan hex sekizli dönüşümü yapılabilir mi?

Basamakların temsil ettiği bit blokları eşit genişlikte olmadığı için tek adımda doğrudan geçiş yapılamaz. Zihinden hesaplasan dahi ikili basamakları köprü olarak kullanmak gerekir.

Sekizli değerlerin başındaki sıfır sayısı karışıklığa yol açar mı?

Bazı programlama dillerinde sayının başına konan sıfır o değerin sekizli olduğunu belirtir ve bazen hatalara neden olabilir. Tabanı açıkça belirtilmiş bir dönüştürücüde işlem yaparken bu belirsizlik ortadan kalkar.

Sekizli tabanda neden 8 ve 9 rakamları bulunmaz?

Çünkü üç bitlik bir alan yalnızca 0 ile 7 arasında sekiz ayrı ihtimal barındırabilir. Tıpkı ikili sistemde 2 bulunmadığı gibi sekizli sistemde de 8 ve 9 kullanılamaz.

Sekizli yazım hex gösteriminden daha az yer kaplar mı?

Hayır. Bayt yapısı iki hex karakterine tam oturduğu için onaltılık biçim bayt tabanlı verilerde her zaman en az sekizli kadar ya da ondan daha derli toplu durur.

Cookie
Verilerinizi önemsiyoruz ve deneyiminizi geliştirmek için çerezleri kullanmayı çok isteriz.