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 kullandığını biliyorsun. Peki assembly programcıları ikili sayıları neden nadiren doğrudan yazar?
İkili sistemle ilgili sorun:
İkili sayılar çok uzundur. Şu örneğe bakın:
| Sayı | İkili |
|---|---|
| 255 | 11111111 |
| 1000 | 1111101000 |
| 65535 | 1111111111111111 |
Uzun 1 ve 0 dizileri yazmak yavaş, hataya açık 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 |
hex bilgisayarlar için neden mükemmeldir:
Bir hex digit tam olarak 4 bits'i (bir byte'ın yarısını) temsil eder.
| Bits | Gerekli hex digits |
|---|---|
| 4 bits (nibble) | 1 hex digit |
| 8 bits (1 byte) | 2 hex digits |
| 16 bits (2 bytes) | 4 hex digits |
| 32 bits (4 bytes) | 8 hex digits |
| 64 bits (8 bytes) | 16 hex digits |
Aynı sayı, üç ş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 et.
Assembly'de hex göreceğiniz yerler:
- Bellek adresleri (
0x7FFFveya0x402000gibi) - ASCII kodları (satır sonu için
0x41,0x0agibi)
- Hata ayıklayıcılardaki kayıt değerleri
- Renk değerleri (kırmızı için
0xFF0000gibi)
Hex, bir önekle yazılır:
| Önek | Örnek | Anlam |
|---|---|---|
0x | 0xFF | Hex'te FF (ondalık sistemde 255) |
$ | $FF | Aynı şey (bazı assembler'larda kullanılır) |
h | FFh | Aynı şey (eski stil) |
Bu kursta 0x ön ekini 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 HexKendi başına pratik yap: Assembly playground