Onaltılık (Hex) Sistem Nerede Kullanılır?
#FF5733 bir renk, 0x1A bir bellek adresi, 3A:B2:C4:1F:9E:0D bir MAC adresidir — hepsi onaltılık (hex) tabanda yazılır. Bu rehberde hex sistemin günlük teknoloji kullanımında karşınıza çıktığı yedi farklı alanı, neden tam bu alanlarda tercih edildiğini örneklerle açıklıyoruz.
- Onaltılık sistem nerede kullanılır? (kısa cevap)
- 1. Web ve tasarımda renk kodları
- 2. Bellek adresleri ve hata ayıklama
- 3. MAC adresleri ve donanım tanımlayıcıları
- 4. Hash özetleri (MD5, SHA)
- 5. Unicode karakter kodları
- 6-7. Dosya imzaları ve programlama sabitleri
- Neden onaltılık, sekizlik değil?
- Sık sorulan sorular
Onaltılık (hex) sistem nerede kullanılır?
0x önekiyle yazılan sabit değerler. Ortak sebep: her hex basamağı tam olarak 4 bite karşılık gelir.
Bu yedi alanın tamamı aslında tek bir avantaja dayanır: hex, uzun ikilik dizileri kısa ve bayt sınırlarıyla düzgün örtüşen biçimde yazmanın en pratik yoludur. Aşağıda her alanı ayrı ayrı ele alıyoruz.
1. Web ve tasarımda renk kodları
En sık karşılaştığınız hex kullanımı muhtemelen renk kodlarıdır. CSS'te bir renk #RRGGBB biçiminde yazılır: ilk iki karakter kırmızı, ortadaki ikisi yeşil, sonuncusu mavi kanalın 0-255 arası yoğunluğunu (onaltılık olarak 00-FF) belirtir.
| Renk | Hex | R | G | B |
|---|---|---|---|---|
| Turuncu-kırmızı | #FF5733 | 255 | 87 | 51 |
| Amber (bu site) | #D97706 | 217 | 119 | 6 |
| Siyah | #000000 | 0 | 0 | 0 |
| Beyaz | #FFFFFF | 255 | 255 | 255 |
Kaynak: TabanÇevir dönüştürme motoru. Her kanal, iki onaltılık hane ile 0-255 (256 farklı değer) tam olarak ifade edilir.
Kendi rengimizin (#D97706) her kanalını dilerseniz sayı tabanı çeviricide tek tek onluğa çevirebilirsiniz.
2. Bellek adresleri ve hata ayıklama
Programlar çalışırken veriler bellekte (RAM) adreslerle saklanır. Bu adresler genellikle 32 veya 64 bitlik ikilik sayılardır — ama 64 haneli bir ikilik dizi yazmak/okumak insan için pratik değildir. Bu yüzden hata ayıklayıcılar (debugger) ve sistem günlükleri adresleri hex olarak gösterir; ör. 0x7FFE2C1A. 4 bitlik bir nibble, bir hex hanesine karşılık geldiği için 64 bitlik bir adres yalnızca 16 hex hanesiyle tam olarak yazılabilir.
3. MAC adresleri ve donanım tanımlayıcıları
3A:B2:C4:1F:9E:0D gibi 12 karakterle (6 çift) yazılır. İkilik yazılsaydı 48 haneli, okunması imkânsız bir dizi gerekirdi.
Ağ kartınızın, Bluetooth cihazınızın ya da yönlendiricinizin benzersiz donanım kimliği olan MAC adresi, dünyadaki her cihaz için (teorik olarak) tekildir. İlk üç bayt (ör. 3A:B2:C4) üreticiyi, son üç bayt cihazın kendisini tanımlar.
Bir hex değeri anında ikiliğe/onluğa çevir
Hex bir MAC baytını, bellek adresini ya da renk kanalını tek tıkla onluğa veya ikiliğe çözün; adım adım işlemi görün.
Onaltılıktan İkiliğe Hesapla →4. Hash özetleri (MD5, SHA)
Bir dosyanın veya şifrenin hash özeti (ör. MD5, SHA-256) her zaman sabit uzunlukta bir hex dizisi olarak gösterilir. Örneğin SHA-256, 256 bitlik bir çıktı üretir ve bu, 64 hex karakteriyle (256÷4=64) tam olarak yazılır. Hash'ler dosya bütünlüğünü doğrulamak veya şifreleri güvenli saklamak için kullanılır; hex gösterim, ham ikilik veriyi metin olarak paylaşılabilir/kopyalanabilir hale getirir.
5. Unicode karakter kodları
Her Unicode karakterinin bir kod noktası vardır ve bu genellikle hex ile yazılır: U+0041 harfi "A", U+1F600 ise 😀 emojisidir. Programlama dillerinde kaçış dizileri de (ör. JavaScript'te A) aynı hex kod noktasını kullanır. Hex tercih edilir çünkü Unicode kod noktaları genellikle 16 veya 32 bitlik bloklardır ve hex bu blokları kompakt gösterir.
6-7. Dosya imzaları ve programlama sabitleri
Dosya imzaları (magic number): Bir dosyanın gerçek türünü, uzantısından bağımsız olarak ilk birkaç baytındaki sabit hex desenden anlarsınız. Örneğin PNG dosyaları her zaman 89 50 4E 47 ile, PDF dosyaları 25 50 44 46 ile başlar.
Programlama sabitleri: C, Java, JavaScript, Python gibi dillerde 0x öneki, bir sabitin hex tabanında yazıldığını belirtir. Örneğin 0x1A, onluk 26'ya eşittir; önek yalnızca yorumlayıcıya tabanı bildirir, sayının kendisinin parçası değildir. Renk sabitleri, bit bayrakları (flags) ve donanım kayıtları genellikle bu şekilde tanımlanır.
Neden onaltılık, sekizlik değil?
1970'lerde bazı sistemler (ör. PDP-8) 12 bitlik kelime kullandığından sekizlik daha uygundu; günümüzün 8/16/32/64 bitlik mimarilerinde ise onaltılık kesin kazanan oldu. Sekizliğin hayatta kaldığı neredeyse tek yer, tarihsel nedenlerle Unix/Linux dosya izinleridir (chmod 755).
2A(16): 2→0010, A(10)→1010, birleştirince 00101010(2) = 42(10). Bu, hex'in ikilikle "birebir uyumlu" olmasının pratikteki karşılığıdır.