Konverter Hexadesimal ke Desimal
Hasil
Desimal
- Nilai tempat
- 2×4096 + 10×256 + 3×16 + 15
Membaca bilangan heksadesimal sebagai desimal adalah penjumlahan nilai tempat, sama seperti pada sistem bilangan mana pun. Setiap karakter mewakili sebuah nilai yang dikalikan pangkat enam belas sesuai posisinya, dihitung dari nol di ujung kanan, lalu semua sukunya dijumlahkan. Dua hal yang membedakannya dari basis sepuluh. Yang pertama, pengalinya enam belas dan bukan sepuluh, jadi nilai tempatnya tumbuh jauh lebih cepat: posisi kedua sudah bernilai enam belas, posisi ketiga dua ratus lima puluh enam, dan seterusnya. Yang kedua, huruf harus diubah lebih dulu menjadi nilai yang bisa dikalikan — A bernilai sepuluh, B sebelas, dan seterusnya sampai F yang bernilai lima belas. Melewatkan penggantian itu adalah kekeliruan yang paling sering terjadi pada konversi ini, karena huruf tidak bisa dikalikan dengan cara apa pun sebelum ia menjadi angka. Halaman ini menuliskan setiap suku penjumlahannya, sehingga terlihat dari mana setiap bagian jawaban datang, dan menampilkan pangkat enam belasnya pada tabel supaya Anda tidak perlu menghitungnya sendiri.
Pangkat enam belas, dari posisi paling kanan sampai posisi terlebar yang bisa dicapai masukan
| Posisi | Pangkat | Nilai |
|---|---|---|
| 13 | 16¹³ | 4503599627370496 |
| 12 | 16¹² | 281474976710656 |
| 11 | 16¹¹ | 17592186044416 |
| 10 | 16¹⁰ | 1099511627776 |
| 9 | 16⁹ | 68719476736 |
| 8 | 16⁸ | 4294967296 |
| 7 | 16⁷ | 268435456 |
| 6 | 16⁶ | 16777216 |
| 5 | 16⁵ | 1048576 |
| 4 | 16⁴ | 65536 |
| 3 | 16³ | 4096 |
| 2 | 16² | 256 |
| 1 | 16¹ | 16 |
| 0 | 16⁰ | 1 |
Empat belas baris, dari pangkat nol sampai pangkat ketiga belas, dan panjang itu bukan angka yang dipilih sembarangan: empat belas karakter adalah masukan terlebar yang diterima, sehingga tabel ini mencakup setiap posisi yang bisa dipakai sebuah jawaban lalu berhenti di situ. Membacanya dari atas ke bawah berarti membaca posisi jawaban dari kanan ke kiri — baris terakhir adalah karakter paling kanan dan baris pertama adalah karakter paling kiri. Kolom tengah adalah posisi yang ditulis sebagai pangkat, yaitu bentuk yang dipakai suku-suku pada penjumlahan di panel atas; kolom ketiga adalah pangkat itu setelah dihitung, yaitu bentuk yang Anda kalikan dalam praktiknya. Nilai-nilai ini bertumpuk dengan halaman biner: 16 adalah dua pangkat empat, 256 adalah dua pangkat delapan, dan 65.536 adalah dua pangkat enam belas, karena satu karakter heksadesimal memuat empat bit. Jadi tabel yang sama menjawab berapa nilai sebuah kelompok empat bit ketika dibaca sebagai bilangan, bukan sebagai bit. Isinya tetap dan tidak mengikuti apa yang Anda ketik.
Rumus
2A3F = 2×16³ + 10×16² + 3×16¹ + 15×16⁰ = 2×4.096 + 10×256 + 3×16 + 15 = 10.815
- 2A3F
- Bilangan yang dibaca, ditulis pada basis enam belas. Panjangnya menentukan berapa banyak suku yang akan dijumlahkan dan pangkat tertinggi yang diperlukan, jadi bilangan yang lebih panjang tidak hanya lebih besar nilainya tetapi juga lebih banyak sukunya
- 16ⁿ
- Nilai tempat sebuah posisi: enam belas pangkat berapa jauh posisi itu dari ujung kanan, dihitung mulai dari nol. Posisi paling kanan selalu bernilai satu, karena bilangan apa pun dipangkatkan nol hasilnya satu, dan setiap langkah ke kiri mengalikan nilai tempatnya dengan enam belas
- 2; 10; 3; 15
- Keempat karakter setelah hurufnya diubah menjadi nilai. Inilah langkah yang paling sering terlewat: A dan F tidak bisa dikalikan sebelum menjadi sepuluh dan lima belas. Setelah penggantian itu, setiap karakter diperlakukan sama seperti digit biasa
- 2×4.096
- Suku terbesar pada penjumlahan ini, dan bentuk yang sebenarnya Anda kerjakan: nilai karakter dikalikan nilai tempatnya. Suku-suku berikutnya berjalan dengan pangkat yang lebih rendah, dan suku paling kanan tidak dikalikan apa pun karena nilai tempatnya satu
- = 10.815
- Jumlah seluruh sukunya, yaitu bilangan itu dibaca sebagai desimal. Inilah satu-satunya tempat pada halaman ini yang menghasilkan bilangan yang bisa langsung dipakai, karena bentuk heksadesimalnya hanya berguna selama masih dibaca mesin
- 14 karakter
- Seberapa panjang masukan yang diterima, dan sekaligus alasan tabel di bawah punya empat belas baris: masukan terpanjang memerlukan pangkat tertinggi yang keempat belas, sehingga tabelnya cukup sampai di situ dan tidak lebih
Konversi ini dipakai ketika sebuah nilai yang ditulis untuk mesin harus dipahami sebagai bilangan. Itu terjadi setiap kali Anda berhadapan dengan nilai yang datang dari lembar data, debugger, atau keluaran sebuah program: alamat memori heksadesimal perlu dibandingkan dengan ambang batas, kode warna perlu dihitung rata-ratanya, dan ukuran yang dicetak sebagai nilai basis enam belas perlu dibandingkan dengan ukuran lain yang ditulis dalam desimal. Membaca nilai itu sebagai desimal juga merupakan cara paling cepat memeriksa besarnya: dua alamat yang mirip secara heksadesimal bisa berbeda jauh nilainya, dan perbedaan itu baru terasa ketika keduanya sudah dalam desimal. Arah ini juga merupakan pemeriksaan untuk konversi sebaliknya — kalau sebuah bilangan desimal sudah ditulis dalam heksadesimal, mengubahnya kembali memastikan tidak ada digit yang tergeser posisinya, dan karena jawabannya ditampilkan sebagai penjumlahan nilai tempat, kecocokannya bisa ditunjuk tepat pada suku yang berbeda. Pelajar yang mengerjakan soal basis bilangan memakai halaman ini untuk melihat bahwa nilai tempat bekerja sama pada semua basis, dan bahwa satu-satunya yang berubah adalah pengalinya.
Contoh hitungan
Membaca 2A3F
- Tulis nilai tempat di atas setiap karakter, dari kanan: 1, 16, 256, dan 4.096
- Ubah hurufnya menjadi nilai: A menjadi 10 dan F menjadi 15
- Kalikan setiap nilai dengan nilai tempatnya: 2×4.096, 10×256, 3×16, dan 15×1
- Jumlahkan keempat sukunya: 8.192 + 2.560 + 48 + 15 = 10.815
Contoh pembuka halaman ini, dan contoh yang memuat kedua langkah yang mudah terlewat sekaligus: mengubah huruf menjadi nilai, dan mengalikan setiap nilai dengan nilai tempatnya. Perhatikan suku paling kanan — nilai tempatnya satu, jadi F menyumbang lima belas tanpa dikalikan apa pun. Perhatikan juga bahwa suku terbesar datang dari karakter paling kiri, dan justru karena itu dua karakter pertama menentukan sebagian besar jawabannya: 2 dan A bersama-sama menyumbang lebih dari sepuluh ribu dari seluruh nilai.
Satu byte penuh, FF
- F bernilai lima belas, dan nilai tempat kedua karakternya adalah 16 dan 1
- Kalikan: 15×16 = 240, dan 15×1 = 15
- Jumlahkan keduanya: 240 + 15 = 255
Ini nilai terbesar yang muat dalam satu byte, dan contoh yang paling sering ditanyakan: mengapa 255 dan bukan 256. Jawabannya ada pada nilai tempat terkecil. Kalau nilai tempat paling kanan dimulai dari satu, maka satu byte menjangkau 256 nilai yang berbeda tetapi yang terbesar adalah 255, karena hitungannya dimulai dari nol. Perhatikan bahwa kedua karakternya sama, tetapi sukunya tidak sama — F yang di kiri bernilai enam belas kali lipat F yang di kanan, dan itulah seluruh arti nilai tempat.
Membaca B2
- B bernilai sebelas, dan 2 bernilai dua
- Nilai tempatnya adalah 16 dan 1
- Kalikan: 11×16 = 176, dan 2×1 = 2
- Jumlahkan: 176 + 2 = 178
Contoh dua karakter yang paling sering muncul di praktik, karena satu byte selalu tepat dua digit heksadesimal dan pasangan inilah yang mewakili satu nilai dari nol sampai 255. Perhatikan bahwa hasilnya tidak sama dengan contoh sebelumnya meskipun panjangnya sama: panjang masukan menentukan pangkat tertinggi yang diperlukan, bukan besar nilainya. Dua karakter bisa berarti 178 atau 255, dan yang membedakannya hanya nilai masing-masing karakternya.
Masukan terbesar, 1FFFFFFFFFFFFF
- Empat belas karakter berarti empat belas suku, dengan pangkat tertinggi 16¹³
- Karakter pertamanya adalah 1, sehingga sukunya adalah nilai pangkat tertinggi itu sendiri
- Ketiga belas karakter berikutnya semuanya F, jadi setiap sukunya adalah lima belas kali nilai tempatnya
- Jumlah keempat belas sukunya adalah bilangan bulat terbesar yang masih bisa dibedakan mesin
Masukan terpanjang yang diterima halaman ini, dan contoh yang memperlihatkan pengaruh nilai tempat dengan paling jelas: satu karakter 1 di posisi paling kiri bernilai lebih besar daripada seluruh tiga belas karakter F di sebelah kanannya. Itulah sebabnya pangkat tertinggi pada tabel di bawah hanya perlu sampai pangkat ketiga belas, dan itulah sebabnya tabelnya berhenti di situ. Perlu diperhatikan juga bahwa penjumlahannya di sini memuat empat belas suku, bukan empat seperti contoh pertama — panjang masukannya yang menentukan, dan itulah beban kerja sebenarnya dari konversi ini.
Batasan
Halaman ini hanya membaca bilangan heksadesimal yang bulat. Tidak ada titik heksadesimal, jadi masukan yang memuat tanda desimal akan ditolak — pembacaan pecahan pada basis ini menuntut bobot posisi di sisi lain titik itu, dan skema itu tidak ditawarkan di sini. Masukannya dibatasi empat belas karakter, yang dalam biner sama dengan lima puluh tiga bit; masukan yang lebih panjang tidak bisa lagi dijamin tepat kalau dibaca sebagai bilangan mesin, jadi ditolak dengan pesan alih-alih dijawab secara hampiran. Huruf besar dan huruf kecil diperlakukan sama, dan jawabannya selalu ditulis dalam desimal sehingga tidak ada huruf yang tersisa di dalamnya. Angka nol di depan pada masukan tidak mengubah nilai dan boleh ditulis sebanyak yang Anda suka. Halaman ini mengubah heksadesimal menjadi desimal saja; bentuk binernya dan arah sebaliknya punya halaman sendiri.
Pertanyaan yang sering diajukan
- Bagaimana cara mengubah heksadesimal ke desimal dengan tangan?
- Tulis nilai tempat di atas setiap karakter, mulai dari satu di ujung kanan dan mengalikan enam belas setiap langkah ke kiri: 1, 16, 256, 4.096, dan seterusnya. Ubah setiap huruf menjadi nilainya lebih dulu — A menjadi sepuluh dan F menjadi lima belas. Lalu kalikan setiap karakter dengan nilai tempatnya dan jumlahkan semua sukunya. Untuk 2A3F hasilnya 10.815. Kedua langkah itu wajib dan berurutan: huruf tidak bisa dikalikan sebelum menjadi angka, dan angka tidak menyumbang apa pun sebelum dikalikan dengan nilai tempatnya.
- Apa arti huruf A sampai F?
- Huruf-huruf itu adalah kelanjutan angka setelah sembilan, karena basis enam belas memerlukan enam belas digit yang berbeda sementara kita hanya punya sepuluh angka. A bernilai sepuluh, B sebelas, C dua belas, D tiga belas, E empat belas, dan F lima belas. Hurufnya bukan sandi dan bukan singkatan dari kata apa pun — ia sekadar lambang untuk nilai yang tidak punya angka tersendiri. Penting untuk diingat bahwa hurufnya tidak menghilang saat konversi: ia berubah menjadi angka, lalu angka itu yang dikalikan dengan nilai tempatnya.
- Berapa bilangan heksadesimal terbesar yang bisa saya ubah di sini?
- Masukan sepanjang empat belas karakter, yang dalam biner sama dengan lima puluh tiga bit. Batas itu bukan pilihan halaman ini melainkan lebar saat sebuah bilangan mesin berhenti bisa membedakan bilangan bulat yang bersebelahan: di atas lebar itu dua bilangan yang berbeda bisa tersimpan sebagai nilai yang sama, jadi jawabannya akan tampak masuk akal padahal sudah tidak tepat. Empat belas karakter juga menentukan panjang tabel di bawah, karena masukan terpanjang memerlukan pangkat tertinggi yang keempat belas. Masukan yang lebih panjang ditolak dengan pesan, bukan dipotong.
- Mengapa FF sama dengan 255 dan bukan 256?
- Karena nilai tempat terkecil bernilai satu, bukan nol. Dua karakter menjangkau 256 nilai yang berbeda, dari nol sampai 255, dan yang terbesar adalah ketika kedua karakternya bernilai lima belas: lima belas kali enam belas ditambah lima belas kali satu, yaitu 240 ditambah 15. Kalau nilai tempat paling kanan dimulai dari nol, nilai terbesarnya akan menjadi 256, tetapi posisi paling kanan selalu bernilai satu karena bilangan apa pun dipangkatkan nol hasilnya satu. Selisih satu itulah alasan hitungan biner dan heksadesimal dimulai dari nol.
- Apakah heksadesimal ke desimal sama dengan heksadesimal ke biner?
- Tidak sama, dan justru perbedaannya yang membuat keduanya berguna. Mengubah heksadesimal ke biner adalah pengelompokan ulang: setiap karakter memetakan ke empat bit yang tetap, jadi tidak ada yang dihitung. Mengubahnya ke desimal memang menuntut perhitungan, karena setiap digit harus dikalikan pangkat enam belas sesuai posisinya lalu dijumlahkan. Karena itu konversi ke biner bisa dikerjakan dengan hafalan, sementara konversi ke desimal tidak. Keduanya bertemu pada satu titik: hasilnya harus cocok kalau bilangan biner itu dibaca kembali sebagai desimal.
- Mengapa halaman ini menampilkan pangkat enam belas dalam sebuah tabel?
- Karena pangkat itu tumbuh cepat dan justru di situlah kesalahannya terjadi. Nilai tempatnya berjalan 1, 16, 256, 4.096, dan seterusnya, dan mengalikan sebuah digit dengan pangkat yang salah menghasilkan jawaban yang tetap tampak masuk akal — tidak ada yang menandainya salah. Dengan tabel, nilai tempatnya bisa dibaca alih-alih dihitung, dan setiap suku penjumlahannya bisa diperiksa satu per satu. Tabelnya berhenti pada pangkat ketiga belas karena masukan terpanjang yang diterima di sini empat belas karakter, jadi tidak ada posisi yang lebih tinggi yang bisa dipakai sebuah jawaban.
Referensi
- Hexadecimal — base sixteen, the letters A to F as the values ten to fifteen, and conversion to and from decimal — Wolfram MathWorld (United States)
- Number base — why a numeral's value depends on its position and on the base, and how the same quantity is written in several bases — Wolfram MathWorld (United States)
- Powers of two — the sequence that the powers of sixteen are every fourth term of, catalogued as OEIS A000079 — OEIS Foundation Inc. (United States)