Konverter Desimal ke Hexadesimal
Hasil
Heksadesimal
- Nilai tempat
- 2×4096 + 10×256 + 3×16 + 15
Mengubah bilangan desimal menjadi heksadesimal dikerjakan dengan membagi enam belas berulang kali, dan setiap putaran menyisakan satu digit jawaban. Alasannya sama dengan pembagian dua pada konversi biner: sisa sebuah pembagian selalu lebih kecil daripada pembaginya, jadi sisa pembagian dengan enam belas selalu berada di antara nol dan lima belas — dan rentang itulah tepatnya satu digit heksadesimal. Yang membedakan halaman ini dari konversi basis dua adalah bahwa sisanya tidak selalu bisa ditulis sebagai satu angka: begitu sisanya melewati sembilan, angkanya habis dan harus dilanjutkan dengan huruf, sehingga sepuluh menjadi A, sebelas menjadi B, dan seterusnya sampai lima belas menjadi F. Di situlah kekeliruan yang paling sering terjadi pada konversi ini — orang membagi dengan benar lalu menyalin sisanya apa adanya sebagai angka, padahal jawabannya menuntut huruf. Halaman ini menuliskan setiap putaran pembagiannya beserta sisanya dalam kedua bentuk, sebagai nilai dan sebagai digitnya, supaya penggantian itu terlihat di tempat terjadinya. Jawabannya juga ditampilkan sebagai penjumlahan nilai tempat, sehingga bisa dicocokkan dengan arah sebaliknya.
Membagi 10815 dengan enam belas, satu putaran setiap kali, sampai hasil baginya mencapai nol
| Putaran | Pembagian | Hasil bagi | Sisa |
|---|---|---|---|
| 1 | 10815 ÷ 16 | 675 | 15 (F) |
| 2 | 675 ÷ 16 | 42 | 3 |
| 3 | 42 ÷ 16 | 2 | 10 (A) |
| 4 | 2 ÷ 16 | 0 | 2 |
Dua dari empat sisa pada tangga ini ditulis sebagai nilai yang diikuti hurufnya di dalam tanda kurung — lima belas (F) dan sepuluh (A) — dan bentuk ganda itulah alasan tabel ini ada. Perhitungannya memberi Anda lima belas; jawabannya memerlukan F. Siapa pun yang membagi dengan benar lalu menyalin kolom sisa apa adanya akan menuliskan angka lima belas dan sepuluh di tempat huruf F dan A, dan itulah satu-satunya kekeliruan yang diundang oleh konversi ini. Bacalah kolom sisa dari bawah ke atas dan karakter jawabannya muncul berurutan: 2, 10, 3, 15, yang menjadi 2A3F setelah kedua nilai di atas sembilan diganti. Tabel ini tetap pada 10815 sementara panel di atasnya mengubah bilangan apa pun yang Anda ketik, karena yang ditampilkannya adalah metodenya dan bukan sebuah hasil. Hasil baginya menyusut dengan faktor sekitar enam belas setiap putaran, sehingga tangga untuk masukan terbesar yang diterima pun hanya empat belas baris — persis sebanyak panjang batas heksadesimalnya, 1FFFFFFFFFFFFF.
Rumus
10815 ÷ 16 = 675 sisa 15 → 675 ÷ 16 = 42 sisa 3 → 42 ÷ 16 = 2 sisa 10 → 2 ÷ 16 = 0 sisa 2 ⇒ 10815 = 2A3F = 2×16³ + 10×16² + 3×16 + 15
- 10815
- Bilangan yang diubah, ditulis pada basis sepuluh. Di halaman ini masukannya harus bilangan bulat: tidak ada tanda desimal dan tidak ada pemisah ribuan, karena keduanya ditolak oleh kotak masukan
- ÷ 16
- Langkah yang diulang, dan pembaginya enam belas karena itulah basis tujuannya. Setiap putaran memisahkan satu digit heksadesimal dari ujung kanan, dimulai dari digit yang paling kanan
- hasil bagi
- Apa yang tersisa setelah pembagian, tanpa sisanya, yaitu bilangan yang dibagi lagi pada putaran berikutnya. Hasil baginya menyusut dengan faktor sekitar enam belas setiap putaran, sehingga tangganya pendek: masukan terpanjang yang diterima pun hanya memerlukan empat belas putaran
- sisa
- Satu digit jawaban, dan nilainya selalu di antara nol dan lima belas karena pembaginya enam belas. Sisa paling kanan pada jawaban datang dari putaran pertama, jadi kolom sisa harus dibaca dari bawah ke atas. Sisa yang nilainya sepuluh atau lebih tidak ditulis sebagai angka, melainkan sebagai huruf
- A — F
- Enam huruf yang melanjutkan hitungan setelah sembilan, karena basis enam belas memerlukan enam digit yang tidak ada pada sepuluh angka yang kita pakai sehari-hari. A bernilai sepuluh, B sebelas, dan seterusnya sampai F yang bernilai lima belas. Hurufnya bukan sandi, melainkan kelanjutan angka
- ⇒ 2A3F
- Jawabannya, yaitu sisa-sisa tadi setelah dibaca dari bawah ke atas dan setelah setiap sisa di atas sembilan diganti hurufnya. Inilah satu-satunya langkah pada konversi ini yang tidak aritmetis, dan sekaligus langkah yang paling sering terlewat
- 2×16³ + 10×16² + 3×16 + 15
- Jawaban yang sama, ditulis sebagai penjumlahan nilai tempat: setiap digit dikalikan pangkat enam belas sesuai posisinya, lalu dijumlahkan. Bentuk ini bukan hiasan — inilah yang bisa Anda cocokkan langsung dengan halaman yang mengubah heksadesimal kembali menjadi desimal
Konversi ini dipakai ketika sebuah bilangan perlu disimpan atau dikirim dalam bentuk yang lebih padat daripada desimal, dan itu terjadi di hampir semua lapisan perangkat lunak. Warna pada halaman web ditulis sebagai pasangan heksadesimal karena setiap pasangannya tepat satu kanal delapan bit; alamat memori dan kode operasi pada dokumentasi perangkat keras ditulis pada basis ini karena empat bit per karakter membuatnya mudah dibaca; dan nilai yang dicetak sebuah debugger hampir selalu heksadesimal. Orang yang mengubah bilangan desimal menjadi heksadesimal biasanya sedang menyiapkan nilai itu untuk ditempatkan di salah satu tempat tersebut, atau sedang memeriksa nilai yang datang dari sana. Arah ini juga merupakan pemeriksaan untuk konversi yang sebaliknya: kalau sebuah bacaan heksadesimal sudah diterjemahkan menjadi desimal, mengubahnya kembali memastikan tidak ada digit yang tergeser posisinya, dan karena hasilnya ditampilkan sebagai penjumlahan nilai tempat, kecocokannya bisa ditunjuk tepat pada suku yang berbeda. Pelajar yang mengerjakan soal basis bilangan memakai halaman ini untuk melihat mengapa sisa pembagian menjadi digit dari kanan ke kiri dan mengapa enam belas digit yang berbeda diperlukan untuk itu.
Contoh hitungan
Menuliskan 10815 dalam heksadesimal
- 10815 dibagi 16 adalah 675 dengan sisa 15
- 675 dibagi 16 adalah 42 dengan sisa 3
- 42 dibagi 16 adalah 2 dengan sisa 10
- 2 dibagi 16 adalah 0 dengan sisa 2, dan hasil baginya sudah nol sehingga berhenti
- Baca kolom sisanya dari bawah ke atas: 2; 10; 3; 15
- Ganti setiap sisa di atas sembilan dengan hurufnya: 2, A, 3, F, yaitu 2A3F
Contoh pembuka halaman ini, dan contoh yang memuat dua kekeliruan yang paling sering terjadi sekaligus. Yang pertama adalah urutan: sisa-sisanya harus dibaca dari bawah ke atas, karena putaran pertama menemukan digit yang paling kanan. Yang kedua adalah penggantian huruf — dua dari empat sisanya berada di atas sembilan, dan keduanya harus menjadi huruf sebelum jawabannya benar. Perhatikan juga bahwa hasil baginya berhenti ketika mencapai nol, bukan ketika mencapai satu, sehingga putaran terakhir menghasilkan sisa 2 yang menjadi digit paling kiri.
Satu byte penuh, 255
- 255 dibagi 16 adalah 15 dengan sisa 15
- 15 dibagi 16 adalah 0 dengan sisa 15, dan berhenti
- Kedua sisanya bernilai lima belas, jadi keduanya menjadi huruf F
- Jawabannya FF
Bilangan terbesar yang muat dalam satu byte, dan heksadesimalnya adalah dua huruf yang sama — pasangan yang paling sering ditemui orang, karena FF adalah nilai yang muncul di mana-mana, dari warna sampai topeng bit. Perhatikan bahwa jawabannya hanya dua digit untuk bilangan yang memerlukan delapan digit dalam biner: satu digit heksadesimal mewakili empat bit, jadi satu byte selalu tepat dua digit. Perhatikan juga bahwa nilai lima belas ditulis sebagai F dan bukan sebagai angka, dan justru itulah yang membuat jawabannya sesingkat ini.
Pangkat enam belas, 1048576
- 1048576 adalah enam belas pangkat lima, jadi nilainya satu diikuti lima angka nol
- Pembagiannya menghasilkan sisa nol pada lima putaran pertama
- Putaran terakhir menyisakan 1, yang menjadi digit paling kiri
- Baca dari bawah ke atas: 1; 0; 0; 0; 0; 0, yaitu 100000
Pangkat enam belas berperilaku persis seperti pangkat sepuluh pada basis sepuluh: nilainya satu diikuti angka nol sebanyak pangkatnya, dan heksadesimalnya terbaca seperti bilangan bulat yang rapi. Perhatikan bahwa pola ini sama dengan pola pangkat dua pada konversi biner, hanya saja nolnya lebih sedikit — enam belas pangkat lima memerlukan dua puluh bit, tetapi hanya enam digit heksadesimal. Itulah keuntungan praktis basis ini: menuliskan panjang bit yang sama dengan seperempat karakternya.
Bilangan negatif
- Tanda minus dipisahkan lebih dulu dan tidak ikut dibagi
- Sisa bilangannya dikonversi seperti biasa, dan hasilnya 2A3F
- Tandanya diletakkan kembali di depan jawabannya, jadi jawabannya -2A3F
Perhatikan bahwa tanda minus berada di luar jawabannya, bukan di dalam salah satu digitnya. Itu disengaja: tanda di depan adalah cara yang dipakai orang ketika menulis di kertas, dan itulah cara halaman ini melaporkannya. Bentuk yang berbeda dipakai prosesor ketika menyimpan bilangan negatif dalam bit berlebar tetap, yaitu komplemen dua, dan lebar bit itu bukan sesuatu yang dimiliki halaman ini — jadi jawabannya tidak dilipat menjadi pola digit berlebar tertentu.
Batasan
Halaman ini hanya mengubah bilangan desimal yang bulat. Tidak ada tanda desimal, jadi bilangan yang punya bagian pecahan tidak bisa diubah di sini — konversi pecahan pada basis enam belas menuntut aturan tersendiri, dan aturan itu tidak ditawarkan. Pemisah ribuan juga tidak diterima, jadi tulis bilangannya sebagai rangkaian angka tanpa pemisah apa pun. Masukannya dibatasi pada bilangan bulat sampai dua pangkat lima puluh tiga dikurangi satu; di atas lebar itu sebuah bilangan mesin berhenti bisa membedakan bilangan bulat yang bersebelahan, sehingga jawabannya akan tampak masuk akal padahal sudah tidak tepat, dan masukan sebesar itu ditolak dengan pesan alih-alih dijawab secara hampiran. Bilangan negatif ditulis dengan tanda minus di depan dan bukan dalam komplemen dua, dan angka nol di depan boleh ditulis sebanyak yang Anda suka karena tidak mengubah nilainya. Halaman ini mengubah desimal menjadi heksadesimal saja; arah sebaliknya dan bentuk binernya punya halaman sendiri.
Pertanyaan yang sering diajukan
- Bagaimana cara mengubah desimal ke heksadesimal dengan tangan?
- Bagi bilangan itu dengan enam belas, catat sisanya, lalu bagi lagi hasil baginya dengan enam belas dan catat sisanya lagi. Ulangi sampai hasil baginya mencapai nol. Setiap sisa adalah satu digit jawaban, dan sisa-sisanya harus dibaca dari bawah ke atas karena putaran pertama menemukan digit yang paling kanan. Setelah itu, ganti setiap sisa yang bernilai sepuluh atau lebih dengan hurufnya: sepuluh menjadi A, sebelas B, dan seterusnya sampai lima belas F. Untuk 10815 sisanya adalah 15, 3, 10, dan 2, yang dibaca dari bawah menjadi 2A3F.
- Mengapa heksadesimal memakai huruf sama sekali?
- Karena basis enam belas memerlukan enam belas digit yang berbeda, sementara kita hanya punya sepuluh angka. Setelah sembilan, angkanya habis, jadi hitungannya dilanjutkan dengan huruf: A sampai F mewakili sepuluh sampai lima belas. Hurufnya bukan sandi dan bukan singkatan — ia sekadar kelanjutan deret angka yang tidak punya lambang tersendiri. Alternatifnya adalah menulis sisa lima belas sebagai dua angka, dan itu akan membuat setiap digit heksadesimal bisa terdiri dari satu atau dua karakter, sehingga batas antardigitnya kabur dan konversinya kembali tidak lagi mekanis.
- Berapa bilangan desimal terbesar yang bisa saya ubah di sini?
- Bilangan bulat sampai dua pangkat lima puluh tiga dikurangi satu, yang dalam heksadesimal adalah satu diikuti tiga belas huruf F. 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. Karena itu masukan yang terlalu besar ditolak dengan pesan. Heksadesimalnya cukup empat belas digit, karena setiap digit mewakili empat bit.
- Apakah heksadesimal sama dengan biner, hanya lebih pendek?
- Isinya sama, panjangnya tidak. Satu digit heksadesimal mewakili tepat empat bit, sehingga mengubah antara keduanya sebenarnya bukan perhitungan melainkan pengelompokan ulang: potong rangkaian binernya menjadi kelompok empat bit lalu baca tiap kelompok sebagai satu digit. Karena itu kedua basis ini dipakai berdampingan — biner untuk melihat bit mana yang menyala, heksadesimal untuk menuliskannya dengan panjang yang masuk akal. Yang berbeda hanya dengan desimal: mengubah heksadesimal ke desimal atau sebaliknya memang menuntut perhitungan, karena sepuluh bukan pangkat dari enam belas.
- Bisakah saya mengubah bilangan desimal yang punya bagian pecahan?
- Belum. Halaman ini mengubah bilangan bulat saja, jadi tanda desimal tidak diterima. Mengubah pecahan sebenarnya mungkin, tetapi caranya berbeda: bagian bulatnya dibagi enam belas berulang kali seperti biasa, sementara bagian pecahannya dikali enam belas berulang kali dan digitnya diambil dari hasil perkaliannya. Kedua bagian itu lalu disatukan dengan sebuah titik di antaranya. Karena halaman ini tidak menawarkan titik itu maupun aturan penggabungannya, masukan yang memuat tanda desimal ditolak alih-alih ditafsirkan.
- Mengapa halaman ini juga menampilkan penjumlahan nilai tempat?
- Supaya jawabannya bisa dicocokkan, bukan sekadar dipercaya. Penjumlahan nilai tempat adalah bentuk yang sama dengan yang dipakai halaman konversi arah sebaliknya, jadi kedua arah itu bisa dibandingkan langsung: pangkat enam belas yang dijumlahkan di sini harus sama dengan pangkat enam belas yang dijumlahkan ketika heksadesimal itu dibaca kembali sebagai desimal. Tanpa bentuk itu, kekeliruan berupa satu digit yang tergeser posisinya hanya akan terlihat sebagai jawaban yang panjangnya berbeda, bukan sebagai selisih yang bisa ditunjuk.
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 one quantity is written in several bases — Wolfram MathWorld (United States)
- Powers of two — the sequence that the base-sixteen positions double up into, catalogued as OEIS A000079 — OEIS Foundation Inc. (United States)