Neden Hexadecimal?
Coddy'nin Assembly Journey'sinin Temeller bölümünün bir parçası — ders 10 / 45.
Artık bilgisayarların ikili sistem (binary) kullandığını biliyorsunuz. Peki, assembly programcıları neden nadiren doğrudan ikili sistemde yazarlar?
İkilik sistemin sorunu:
İkilik sayılar çok uzundur. Şu örneğe bakın:
| Sayı | İkilik |
|---|---|
| 255 | 11111111 |
| 1000 | 1111101000 |
| 65535 | 1111111111111111 |
Uzun 1 ve 0 dizileri yazmak yavaştır, hataya meyillidir ve okunması zordur.
Çözüm: onaltılık (taban 16).
Onaltılık (veya "hex") 16 sembol kullanır:
| Basamak | Değer |
|---|---|
| 0-9 | 0'dan 9'a |
| A | 10 |
| B | 11 |
| C | 12 |
| D | 13 |
| E | 14 |
| F | 15 |
Neden hex bilgisayarlar için mükemmeldir:
Bir hex basamağı tam olarak 4 biti (yarım bayt) temsil eder.
| Bitler | Gerekli hex basamakları |
|---|---|
| 4 bit (nibble) | 1 hex basamağı |
| 8 bit (1 bayt) | 2 hex basamağı |
| 16 bit (2 bayt) | 4 hex basamağı |
| 32 bit (4 bayt) | 8 hex basamağı |
| 64 bit (8 bayt) | 16 hex basamağı |
Aynı sayı, üç farklı şekilde:
| Ondalık | İkili | Onaltılık |
|---|---|---|
| 255 | 11111111 | FF |
| 1000 | 1111101000 | 3E8 |
| 65535 | 1111111111111111 | FFFF |
Hex'in binary'den ne kadar daha kısa olduğuna dikkat edin.
Assembly'de onaltılık (hex) sayıları göreceğiniz yerler:
- Bellek adresleri (
0x7FFFveya0x402000gibi) - ASCII kodları ('A' için
0x41, yeni satır için0x0agibi)
- Hata ayıklayıcılardaki register değerleri
- Renk değerleri (kırmızı için
0xFF0000gibi)
Hex bir önek ile yazılır:
| Önek | Örnek | Anlamı |
|---|---|---|
0x | 0xFF | Hex formatında FF (onluk sistemde 255) |
$ | $FF | Aynı şey (bazı assembler'larda kullanılır) |
h | FFh | Aynı şey (eski stil) |
Bu kursta, 0x önekini kullanıyoruz: 0x0a, 0x41, 0xFF.
Kendin dene
Bu ders bir kod alıştırması içermiyor.
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Temeller bölümündeki tüm dersler
2Sayı Sistemleri
Neden İkilik Sistem?İkilik SayılarOnluktan İkiliğeNeden Hexadecimal?Hex'ten OnluğaOnluktan Hex'eASCII ve Hex