Heksadesimal (hexadecimal, atau heks) ialah asas 16: ia mempunyai enam belas digit, 0 hingga 9 kemudian A hingga F. Oleh sebab 16 = 24, satu digit heks ialah tepat empat bit, jadi heks ialah cara lebih pendek menulis perduaan, bukan cara lain bagi komputer menyimpannya.
Pelajaran ini membina atas penukaran antara perduaan dan denari dan terletak dalam Perwakilan nombor dan teks.
Apakah peta daripada empat bit kepada satu digit heks?
Empat bit (satu nibble) boleh memegang 0 hingga 15, iaitu tepat enam belas digit heks.
| Denari | Perduaan | Heks | Denari | Perduaan | Heks |
|---|---|---|---|---|---|
| 0 | 0000 | 0 | 8 | 1000 | 8 |
| 1 | 0001 | 1 | 9 | 1001 | 9 |
| 2 | 0010 | 2 | 10 | 1010 | A |
| 3 | 0011 | 3 | 11 | 1011 | B |
| 4 | 0100 | 4 | 12 | 1100 | C |
| 5 | 0101 | 5 | 13 | 1101 | D |
| 6 | 0110 | 6 | 14 | 1110 | E |
| 7 | 0111 | 7 | 15 | 1111 | F |
Anda tidak perlu menghafal jadual ini. Lajur perduaan hanyalah nilai tempat 8, 4, 2, 1, jadi anda boleh membina semula mana-mana baris dalam beberapa saat.
Bagaimanakah menukar perduaan kepada heks dan sebaliknya?
Perduaan kepada heks:
- Pecahkan bit kepada kumpulan empat, bermula dari kanan. Tambah sifar di kiri jika kumpulan terakhir pendek.
- Tukar setiap kumpulan kepada nombor 0 hingga 15 menggunakan 8, 4, 2, 1.
- Tulis setiap nombor sebagai digit heks.
Heks kepada perduaan: gantikan setiap digit heks dengan empat bitnya.
Heks kepada denari: darabkan digit kiri dengan 16 dan tambah digit kanan.
Contoh berlangkah
Tukar 10111100 kepada heks, kemudian kepada denari.
Langkah 1, kumpulkan: 1011 dan 1100.
Langkah 2, tukar setiap kumpulan: 1011 = 8 + 2 + 1 = 11 = B. Dan 1100 = 8 + 4 = 12 = C.
Langkah 3, jawapan heks: BC.
Langkah 4, denari: B ialah 11 dan C ialah 12, jadi 11 × 16 + 12 = 176 + 12 = 188.
Semak: 10111100 dalam perduaan ialah 128 + 32 + 16 + 8 + 4 = 188. Kedua-dua laluan sepadan.
Pada arah sebaliknya, heks 3F menjadi 0011 dan 1111, jadi perduaannya 00111111. Dalam denari, 3 × 16 + 15 = 63, dan 32 + 16 + 8 + 4 + 2 + 1 = 63 juga.
Bolehkah penukaran heks disemak dalam kod?
Boleh. Dalam Python, hex(188) memberi '0xbc', int("BC", 16) memberi 188 dan format(188, "08b") memberi 10111100. Cuba dalam kotak pasir penaakulan Python.
Gunakan kod untuk mengesahkan kerja di atas kertas, bukan menggantikannya, kerana peperiksaan meminta anda menunjukkan kaedah.
Kesilapan yang perlu diawasi
Kesilapan lazim ialah mengumpulkan bit dari kiri apabila panjangnya bukan gandaan empat.
Soalan: Tukar 1101101 (7 bit) kepada heks.
Kerja yang salah: kumpulkan dari kiri: 1101 dan 101, jadi D dan 5, memberi D5.
D5 ialah 213 dalam denari, tetapi 1101101 ialah 64 + 32 + 8 + 4 + 1 = 109. Kumpulkan dari kanan dan tambah sifar di kiri: 0110 1101, iaitu 6 dan 13, jadi 6D. Semak: 6 × 16 + 13 = 109.
Semak diri anda
1. Tukar heks 7E kepada perduaan dan denari.
Lihat jawapan
7 = 0111 dan E = 14 = 1110, jadi perduaannya 01111110. Denari: 7 × 16 + 14 = 112 + 14 = 126. Semak: 64 + 32 + 16 + 8 + 4 + 2 = 126.
2. Tukar 11110001 kepada heks.
Lihat jawapan
Kumpulan: 1111 dan 0001. 1111 = 15 = F dan 0001 = 1. Jawapannya F1. Dalam denari ia ialah 15 × 16 + 1 = 241.
3. Berikan satu sebab pengaturcara menulis 255 sebagai FF.
Lihat jawapan
FF bermaksud 1111 1111, nilai 8 bit terbesar (255). Ia hanya memerlukan dua aksara dan bukannya lapan, jadi lebih pendek serta lebih mudah dibaca dan disalin tanpa kesilapan.
Langkah seterusnya
Seterusnya, latih menambah nombor perduaan dan mengesan limpahan, kemudian uji modul dengan set latihan campuran. Guru boleh membantu anda melihat mengapa idea yang sama sentiasa kembali dalam tuisyen Computer Science dalam talian secara satu dengan satu.