Dalam dunia komputasi, data tidak hanya disimpan dan diproses dalam bentuk biner (0 dan 1) atau desimal (basis 10) yang kita kenal sehari-hari. Ada sistem bilangan lain yang sangat krusial, terutama dalam pemrograman, pengembangan web, dan ilmu komputer secara umum: sistem bilangan **heksadesimal** (basis 16). Memahami heksadesimal (sering disingkat 'hex') adalah kunci untuk bekerja dengan alamat memori, kode warna RGB, dan representasi data tingkat rendah lainnya.
Sistem desimal menggunakan sepuluh simbol (0 hingga 9). Sebaliknya, sistem heksadesimal menggunakan enam belas simbol unik. Untuk merepresentasikan enam belas nilai, kita memerlukan sepuluh digit numerik dan enam simbol tambahan. Dalam heksadesimal, simbol-simbol tersebut adalah: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, diikuti oleh huruf A, B, C, D, E, F.
Nilai dari huruf-huruf ini setara dengan nilai desimal berikut:
Notasi umum untuk membedakan angka heksadesimal dari desimal adalah dengan menambahkan awalan 0x (misalnya, 0xFF) atau sufiks h atau H (misalnya, FFh). Sistem ini sangat efisien karena empat bit biner (setengah byte) dapat diwakili secara tepat oleh satu digit heksadesimal. Karena 16 adalah $2^4$, konversi dari biner ke heksadesimal menjadi sangat langsung.
Konversi adalah aspek paling mendasar dari mempelajari angka heksadesimal. Mengonversi dari heksadesimal ke desimal melibatkan perkalian setiap digit heksadesimal dengan pangkat 16 yang sesuai dengan posisinya.
Sebagai contoh, mari kita konversi angka heksadesimal 3A2:
2) berada di posisi $16^0$: $2 \times 1 = 2$A, yang bernilai 10) berada di posisi $16^1$: $10 \times 16 = 160$3) berada di posisi $16^2$: $3 \times 256 = 768$3A2 (hex) sama dengan 930 (desimal).
| Heksadesimal | Desimal | Biner (4-bit) |
|---|---|---|
| 0 | 0 | 0000 |
| 9 | 9 | 1001 |
| A | 10 | 1010 |
| D | 13 | 1101 |
| F | 15 | 1111 |
| 10 | 16 | 0001 0000 |
Salah satu penggunaan angka heksadesimal yang paling sering ditemui oleh desainer web dan pengembang antarmuka pengguna adalah dalam menentukan warna. Dalam model warna RGB (Red, Green, Blue), setiap komponen warna (merah, hijau, biru) diwakili oleh dua digit heksadesimal, menghasilkan rentang nilai dari 00 (intensitas nol) hingga FF (intensitas maksimum).
Kode warna heksadesimal selalu terdiri dari enam karakter setelah tanda pagar (#). Misalnya, warna putih murni adalah #FFFFFF (Merah=FF, Hijau=FF, Biru=FF), sedangkan hitam adalah #000000. Warna merah terang diwakili oleh #FF0000. Karena setiap pasangan heksadesimal setara dengan satu byte (8 bit), total 24 bit digunakan untuk menentukan warna, yang memungkinkan lebih dari 16 juta kombinasi warna yang berbeda.
Dalam konteks pemrograman tingkat rendah, seperti saat berinteraksi dengan C/C++ atau assembly, memori komputer sering kali dialokasikan dan diakses menggunakan alamat heksadesimal. Misalnya, sebuah variabel mungkin dialokasikan pada alamat memori 0x7FFD3A0C. Menggunakan heksadesimal memudahkan programmer untuk membaca dan memanipulasi blok data yang panjang karena dua digit heksadesimal secara ringkas mewakili satu byte data. Jika kita menggunakan biner, satu byte membutuhkan delapan karakter (misalnya 11010010), sedangkan heksadesimal hanya membutuhkan dua (D2). Penghematan ruang visual ini sangat signifikan saat menangani data dalam jumlah besar.
Selain itu, dalam pengkodean karakter (seperti ASCII atau Unicode), nilai karakter sering kali direpresentasikan dalam heksadesimal. Contohnya, huruf 'A' besar dalam ASCII adalah 41 dalam heksadesimal.
Bayangkan bagaimana satu byte data biner (8 bit) dapat dipilah menjadi dua kelompok 4-bit, di mana setiap kelompok 4-bit cocok persis dengan satu simbol heksadesimal.
Secara keseluruhan, angka heksadesimal adalah jembatan penting antara bahasa mesin yang fundamental (biner) dan cara manusia paling efisien merepresentasikan data tersebut, baik itu alamat memori, nilai warna, maupun penanda data lainnya dalam konteks digital modern.