Kalkulator Hexadesimal
Hasil
Heksadesimal
- Desimal
- 10.842
- Biner
- 10101001011010
- Sisa
- 0
Kalkulator heksadesimal menjumlahkan, mengurangkan, mengalikan, dan membagi bilangan yang ditulis pada basis enam belas, lalu menampilkan jawabannya sekaligus dalam heksadesimal, desimal, dan biner. Aritmetikanya sama persis dengan aritmetika yang sudah Anda kenal; yang berbeda hanya di mana penyimpanan terjadi. Pada desimal, 9 ditambah 1 menyimpan satu ke kolom berikutnya karena basisnya sepuluh; pada heksadesimal, barisan digitnya baru habis setelah F, jadi F ditambah 1 menyimpan satu dan menuliskan 10. Fakta tunggal itulah inti seluruh aritmetika heksadesimal, dan pengurangan, perkalian, serta pembagian mengikutinya dengan cara yang sama seperti pada basis mana pun. Jawabannya dicetak tiga kali karena ketiga bacaan itu berguna untuk hal yang berbeda: bentuk heksadesimalnya yang Anda cari, bentuk desimalnya yang bisa Anda periksa sekilas, dan bentuk binernya yang menunjukkan bit mana saja yang sebenarnya tersimpan. Pembagiannya adalah pembagian bilangan bulat, jadi sisanya mendapat barisnya sendiri alih-alih menghilang ke dalam tanda desimal, dan huruf besar maupun huruf kecil sama-sama diterima pada masukan karena keduanya menuliskan bilangan yang sama.
Rumus
2A3F + 1B = 2A5A (10.815 + 27 = 10.842)
- 2A3F
- Bilangan pertama, ditulis pada basis enam belas. Membacanya sebagai basis enam belas itulah yang membuat nilainya sepuluh ribu delapan ratus lima belas — rangkaian karakter yang sama, kalau dibaca sebagai desimal, akan ditolak karena memuat huruf, dan justru itulah yang menjaga kedua basis ini tidak tertukar
- + − × ÷
- Operasinya. Bekerja digit per digit persis seperti pada desimal, hanya saja enam belas diganti sepuluh di setiap tempat yang menyimpan atau meminjam
- F + 1 = 10
- Fakta aritmetika heksadesimal yang paling berguna untuk diingat. F adalah digit terakhir, jadi menambahinya satu menghabiskan kolom itu dan menyimpan satu ke posisi berikutnya. Perhatikan bahwa ini bukan aturan yang sama dengan biner: pada biner setiap penambahan 1 + 1 menyimpan, sedangkan di sini barisan digitnya masih panjang sebelum menyimpan terjadi
- jumlah digit × 16ⁿ
- Cara bacaan desimalnya dihasilkan: setiap digit dikalikan nilai tempatnya lalu hasilnya dijumlahkan, dengan A sampai F dihitung sebagai sepuluh sampai lima belas. Dari sinilah 2A3F menjadi sepuluh ribu delapan ratus lima belas, dan inilah satu-satunya jembatan antara jawaban heksadesimal dan jawaban desimal
- 4 bit per digit
- Alasan bacaan binernya bisa dihasilkan tanpa perhitungan sama sekali: satu digit heksadesimal selalu mewakili empat bit, jadi mengubah jawabannya menjadi biner adalah pengelompokan ulang dan bukan konversi. Satu byte selalu tepat dua digit, itulah sebabnya basis ini dipakai untuk menuliskan nilai yang disimpan dalam delapan bit
- sisa
- Yang tersisa ketika sebuah pembagian tidak habis. Baris sisa selalu ditampilkan, dan nilainya nol untuk tiga operasi yang tidak mungkin menyisakan apa pun. Sisanya bisa berupa huruf, karena nilainya bisa melewati sembilan — membagi 2A3F dengan 1B menyisakan F, bukan lima belas angka
- 53 bit
- Selebar apa masukan yang diterima halaman ini. Batasnya adalah lebar saat sebuah bilangan mesin berhenti bisa membedakan bilangan bulat yang bersebelahan, sehingga masukan yang lebih besar ditolak dengan pesan alih-alih dijawab secara hampiran
Aritmetika heksadesimal dipakai setiap kali nilai yang sedang dihitung juga akan dibaca mesin, dan itu jauh lebih sering daripada yang terlihat. Alamat memori, kode operasi, dan nilai register ditulis pada basis ini di dokumentasi perangkat keras; warna pada halaman web adalah tiga pasang digit heksadesimal; bitmask dan flag disiapkan dengan menggeser serta menjumlahkan pangkat dua, lalu ditulis dalam heksadesimal supaya empat bitnya tetap terbaca sebagai satu karakter. Orang yang sedang menghitung ukuran alokasi, menambahkan offset pada sebuah alamat, atau menggabungkan dua topeng bit memerlukan halaman ini karena hasilnya harus tetap dalam basis yang sama dengan sumbernya. Aritmetika ini juga dipakai untuk memeriksa: nilai yang dicetak sebuah debugger sering perlu dijumlahkan atau dikurangi dengan nilai lain yang juga heksadesimal, dan mengubah keduanya ke desimal lebih dulu hanya menambah dua langkah yang bisa keliru. Pelajar yang mengerjakan soal basis bilangan memakai halaman ini untuk melihat bahwa aturan menyimpan bukan ciri khas biner melainkan ciri khas basis apa pun, dan bahwa basis enam belas kebetulan lebih jarang menyimpan daripada basis dua.
Contoh hitungan
Menjumlahkan 2A3F dan 1B
- Sejajarkan kedua bilangan di sisi kanan, sehingga 1B menempati dua kolom paling kanan
- Kolom paling kanan: F + B berarti 15 + 11 = 26, yaitu satu kali enam belas ditambah 10. Tulis A dan simpan 1
- Kolom berikutnya: 3 + 1 + simpanan 1 = 5
- Kolom berikutnya: A + 0 = 10, jadi tulis A
- Kolom paling kiri: 2 + 0 = 2
- Hasilnya terbaca 2A5A, dan dalam desimal 10.815 + 27 = 10.842
Contoh pembuka halaman ini, dan contoh yang memperlihatkan dua hal sekaligus: menyimpan terjadi ketika kolomnya melewati lima belas, dan nilai di atas sembilan ditulis sebagai huruf. Perhatikan kolom paling kanan — 26 melewati enam belas, jadi ada satu yang disimpan, dan sisanya 10 ditulis A dan bukan sebagai angka. Bacaan binernya juga tidak dihitung dari awal: setiap digit heksadesimalnya menjadi empat bit, sehingga jawaban ini adalah empat kelompok empat bit yang disambung.
Membagi 2A3F dengan 1B
- 1B adalah 27 dalam desimal, dan 2A3F adalah 10.815
- 10.815 dibagi 27 adalah 400 dengan sisa 15
- 400 dalam heksadesimal adalah 190, dan 15 adalah F
- Jadi jawabannya 190 dengan sisa F
Contoh yang menunjukkan bahwa sisanya bisa berupa huruf, dan bahwa baris sisa itu bukan hiasan: tanpa baris itu, 190 akan mengatakan bahwa 10.815 dibagi 27 hasilnya tepat 400, padahal masih tersisa lima belas. Perhatikan juga bahwa hasil baginya lebih pendek daripada masukannya — pembagian dengan bilangan yang lebih besar dari satu selalu memendekkan jawaban, berbeda dengan perkalian yang memanjangkannya. Untuk memeriksanya, kalikan kembali hasil baginya dengan pembaginya lalu tambahkan sisanya: hasilnya harus kembali menjadi 2A3F.
Penjumlahan yang sama dengan huruf kecil
- Huruf kecil dan huruf besar menyatakan digit yang sama, jadi 2a3f adalah bilangan yang sama dengan 2A3F
- Penjumlahannya berjalan persis seperti contoh pertama
- Jawabannya 2A5A, dan dalam desimal 10.842
Halaman ini menerima masukan dengan huruf besar maupun huruf kecil dan selalu menuliskan jawabannya dengan huruf besar, karena itulah bentuk yang dipakai di dokumentasi, debugger, dan lembar data. Kebiasaan menulis huruf kecil tidak salah, tetapi akan tampak berbeda dari sumber mana pun yang Anda bandingkan. Perhatikan juga bahwa contoh ini hanya melaporkan jawaban heksadesimal dan desimalnya — jawaban yang sama dengan contoh pertama, dan itu memang tujuannya: untuk menunjukkan bahwa besar-kecilnya huruf tidak mengubah hasil apa pun.
Batasan
Halaman ini hanya bekerja pada bilangan bulat. Tidak ada titik heksadesimal dan tidak ada pecahan, jadi masukan yang memuat tanda desimal akan ditolak — artinya juga pembagian yang tidak habis menghasilkan hasil bagi dan sisa, bukan uraian pecahan, dan hasil baginya dipotong ke arah nol alih-alih dibulatkan. Masukannya dibatasi pada bilangan bulat yang muat dalam lima puluh tiga bit; di atas lebar itu aritmetikanya tidak lagi bisa dijamin tepat, sehingga masukan sebesar itu ditolak dengan pesan alih-alih dijawab secara hampiran, dan hasil yang melampaui langit-langit yang sama juga ditolak. Bilangan negatif ditulis dengan tanda minus di depan, bukan dalam komplemen dua, dan tidak ada lebar bit tetap yang ditawarkan maupun diasumsikan: 2A3F di sini adalah empat digit, bukan empat digit rendah sebuah register. Pembagian dengan nol ditolak.
Pertanyaan yang sering diajukan
- Apa arti huruf-hurufnya?
- Huruf A sampai F 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. Jadi 1B bukan satu huruf B, melainkan satu kali enam belas ditambah sebelas, yaitu dua puluh tujuh.
- Mengapa 1 + 1 tidak menyimpan di sini padahal di biner menyimpan?
- Karena menyimpan terjadi ketika digitnya habis, dan pada basis enam belas digitnya baru habis setelah F. Di biner hanya ada dua digit, jadi setiap penambahan 1 + 1 sudah menghabiskan kolomnya; di sini masih ada empat belas digit lain di atas 1, sehingga 1 + 1 hanya menjadi 2. Yang menyimpan di halaman ini adalah penjumlahan yang melewati lima belas, misalnya F ditambah 1, yang menghasilkan 10 — satu disimpan dan nol ditulis. Aturan menyimpannya sama, hanya titik terjadinya yang berbeda karena basisnya berbeda.
- Apakah besar-kecilnya huruf pada masukan saya berpengaruh?
- Tidak berpengaruh sama sekali. Heksadesimal adalah notasi, dan nilainya tidak berubah karena hurufnya diketik besar atau kecil: 2a3f dan 2A3F adalah bilangan yang sama. Halaman ini menerima keduanya dan selalu menuliskan jawabannya dengan huruf besar, karena itu bentuk yang dipakai di dokumentasi, debugger, dan lembar data. Jadi tidak ada bedanya hasilnya, tetapi jawabannya akan tampak berbeda dari masukan Anda kalau Anda menulisnya dengan huruf kecil.
- Berapa bilangan terbesar yang bisa saya masukkan?
- Bilangan bulat yang muat dalam lima puluh tiga bit. Batas itu adalah lebar saat sebuah bilangan mesin berhenti bisa membedakan bilangan bulat yang bersebelahan, jadi di atasnya aritmetikanya diam-diam berhenti tepat: hasilnya akan tampak seperti sebuah angka padahal bukan. Masukan yang lebih lebar ditolak dengan pesan, bukan dipotong atau dibulatkan, dan hasil yang melampaui langit-langit yang sama juga ditolak. Dalam heksadesimal, lebar itu sama dengan empat belas digit.
- Apakah ini sama dengan konverter basis?
- Tidak sama. Konverter basis mengganti penulisan sebuah bilangan tanpa mengubah nilainya; halaman ini menghitung, jadi dua bilangan masuk dan satu bilangan keluar. Yang mirip hanyalah cara membacanya: hasilnya ditampilkan pada tiga basis sekaligus, sama seperti sebuah konverter akan menampilkannya. Kalau yang Anda perlukan adalah mengganti basis satu bilangan saja, konverter basis lebih tepat; kalau Anda perlu menjumlah, mengurangi, mengali, atau membagi, hasilnya harus dihitung lebih dulu dan itulah yang dikerjakan halaman ini.
- Mengapa baris sisa selalu ada?
- Karena panel hasil di halaman ini adalah daftar baris yang tetap, bukan daftar yang memanjang dan memendek mengikuti operasi yang Anda pilih, dan baris yang muncul lalu hilang lebih sulit dibaca daripada baris yang selalu di tempat yang sama. Penjumlahan, pengurangan, dan perkalian bilangan bulat tidak mungkin menyisakan sisa, jadi barisnya terbaca 0 — nol itu adalah cara baris tersebut mengatakan bahwa operasinya tidak menyisakan apa pun. Pembagian satu-satunya operasi di sini yang bisa menyisakan, dan sisanya bisa berupa huruf kalau nilainya melewati sembilan.
Referensi
- Hexadecimal — the base-sixteen system, the digits beyond nine, and the relationship between one hexadecimal digit and four binary digits — 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 different bases — Wolfram MathWorld (United States)
- IEEE 754 — the double-precision format these calculations are carried out in, and the 53-bit significand that fixes this page's input ceiling — IEEE Standards Association (United States)