Tek cümlede hexadecimal
Hexadecimal, tabanı 16 olan konumsal bir sayı sistemidir: her basamak, sağındaki basamağın 16 katı değerindedir ve 10 ile 15 arasındaki değerler A ile F arasındaki harflerle yazılır. Programcılar bir sayının hex olduğunu göstermek için 0x1A (C, Java, JavaScript, Python), CSS renklerinde #1A2B3C, assembly'de 1Ah, matematikte ise 1A₁₆ yazar.
0'dan 15'e hex basamakları
| Onluk | Hex | İkilik | Onluk | Hex | İkilik |
|---|---|---|---|---|---|
| 0 | 0 | 0000 | 8 | 8 | 1000 |
| 1 | 1 | 0001 | 9 | 9 | 1001 |
| 2 | 2 | 0010 | 10 | A | 1010 |
| 3 | 3 | 0011 | 11 | B | 1011 |
| 4 | 4 | 0100 | 12 | C | 1100 |
| 5 | 5 | 0101 | 13 | D | 1101 |
| 6 | 6 | 0110 | 14 | E | 1110 |
| 7 | 7 | 0111 | 15 | F | 1111 |
Onaltılık sistemde sayma
Hex'te sayma onluk sistemdeki gibidir, ancak basamak 9'dan sonra değil F'den sonra artar: … 8, 9, A, B, C, D, E, F, 10, 11 … 19, 1A … 1F, 20 … FF, 100. Burada 10 on altı, 100 ise 16 × 16 = 256 anlamına gelir. İki hex basamağı bir baytı kapsar (00–FF = 0–255); dört basamak FFFF = 65.535'e, sekiz basamak ise FFFFFFFF = 4.294.967.295'e kadar çıkar.
Bilgisayarlar neden onaltılık sistemi kullanır?
Bilgisayarlar her şeyi ikilik sistemde saklar, ancak uzun 0 ve 1 dizilerini insanların okuması zordur ve yanlış yazmak kolaydır. 16 = 2⁴ olduğu için bir hex basamağı tam olarak dört biti (bir nibble), iki hex basamağı ise bir baytı temsil eder. Hex ile ikilik arasında çevirme, basamak basamak yapılan basit bir tablo eşlemesidir ve hex dört kat daha kısadır: 1101 1110 1010 1101 yalnızca DEAD olarak yazılır. Onluk sistemin ikilik sistemle böyle düzenli bir ilişkisi yoktur; bu yüzden ham veriler için nadiren kullanılır.
Hex'ten onluğa ve onluktan hex'e çevirme
- Hex'ten onluğa: her basamağı 16'nın ilgili kuvvetiyle çarpın ve toplayın:
2F= 2 × 16 + 15 = 47 ve1A3F= 1 × 4096 + 10 × 256 + 3 × 16 + 15 = 6719. - Onluktan hex'e: art arda 16'ya bölün ve kalanları sondan başa okuyun: 200 ÷ 16 = 12, kalan 8; 12 = C olduğundan 200 =
C8. - Hex'ten ikiliğe: her basamağı 4 bitlik karşılığıyla değiştirin:
2F=0010 1111.
Çeviricilerimiz bunların hepsini anında yapar ve her adımı gösterir.
Onaltılık sistem nerelerde kullanılır?
- Web renkleri:
#FF6347; kırmızıFF, yeşil63ve mavi47değerlerinden oluşur. - Bellek adresleri: hata ayıklayıcılar ve çökme raporları
0x7FFE5A3Cgibi işaretçiler gösterir. - MAC adresleri:
00:1A:2B:3C:4D:5Egibi altı bayt, ağ kartlarını tanımlar. - IPv6 adresleri: dörder hex basamaklı sekiz grup, örneğin
2001:db8::1. - Unicode: her karakterin hex bir kod noktası vardır –
U+00E9é,U+1F600ise 😀 karakteridir. - Hash'ler ve kimlikler: bir SHA-256 hash'i 64 hex karakterden oluşur; UUID'ler ve Git commit kimlikleri de hex ile yazılır.
- Hex dump'lar: hex editörler dosya içeriğini bayt bayt gösterir; her PDF
25 50 44 46(“%PDF”) ile başlar. - Hata kodları: Windows,
0x80070005(erişim reddedildi) gibi hata kodları bildirir.
Onaltılık, onluk, sekizlik ve ikilik sistemlerin karşılaştırması
| Sistem | Taban | Rakamlar | 255'in yazılışı | Tipik kullanım |
|---|---|---|---|---|
| İkilik (binary) | 2 | 0–1 | 11111111 | Donanım, bit bayrakları |
| Sekizlik (octal) | 8 | 0–7 | 377 | Unix dosya izinleri (chmod 755) |
| Onluk (decimal) | 10 | 0–9 | 255 | Günlük sayılar |
| Onaltılık (hexadecimal) | 16 | 0–9, A–F | FF | Baytlar, renkler, adresler, hash'ler |
Hex'te negatif sayılar
Hex'in kendine özgü bir işaret gösterimi yoktur; bu yüzden negatif sayılar genellikle ikiye tümleyen (two's complement) biçiminde saklanır: sabit boyutlu bir değerin en yüksek biti, sayının negatif olduğunu belirtir. İşaretli bir bayt olarak 7F 127, 80 −128, FF ise −1'dir; 32 bitlik bir tam sayı olarak FFFFFFFF −1'dir. Matematikte ve hesap makinemizde doğrudan eksi işareti de yazabilirsiniz: −1A = −26.
Sıkça sorulan sorular
Onaltılık sistemde neden harfler kullanılır?
16 tabanı, tek karakterlik on altı rakam gerektirir; ancak yalnızca on rakam vardır. A–F harfleri 10–15 değerlerini temsil eder. Büyük ve küçük harf aynı anlama gelir: ff = FF = 255.
Sayının önündeki 0x ne anlama gelir?
C, C++, Java, JavaScript, Python ve diğer birçok dilde sayının onaltılık olduğunu belirtir: 0x10 on değil, 16'dır. CSS renkler için bunun yerine # kullanır; assembly kodunda ise genellikle sona bir h eklenir (10h).
Hexadecimal ile Base64 aynı şey mi?
Hayır. Hex her baytı 0–9 ve A–F arasından iki karakterle yazar; bu yüzden veri boyutu iki katına çıkar ama bayt bayt okunması kolay kalır. Base64 ise 64 karakter kullanır ve 3 baytı 4 karaktere sığdırır; bu daha kompakttır (yaklaşık %33 ek yük) ancak bayt bayt okunamaz.
Son güncelleme: