Biner, oktal, desimal, dan hex — serta setiap basis hingga 36
Ketik bilangan dalam biner, oktal, desimal, heksadesimal, atau basis apa pun dari 2 hingga 36, lalu lihat hasilnya di semua basis lain sekaligus. Bilangan boleh sebesar apa pun — konverter ini memakai bilangan bulat presisi sembarang, sehingga nilai 64-bit atau 128-bit tetap utuh setiap digitnya — dan bilangan negatif ditampilkan dalam komplemen dua pada 8, 16, 32, 64, dan 128 bit, dengan tampilan bit yang bisa Anda klik untuk membalik bit satu per satu. Prefiks seperti <code>0x</code> dan pemisah seperti <code>1_000_000</code> dikenali. Semuanya berjalan di browser Anda.
Cara mengonversi antar basis bilangan
- 1Pilih basis yang Anda ketik: Bin, Okt, Des, Hex, atau Kustom untuk basis apa pun dari 2 hingga 36.
- 2Ketik atau tempel bilangannya. Tanda minus, prefiks
0x,0b, dan0o, serta spasi, garis bawah, atau koma di antara digit semuanya diterima. - 3Baca hasilnya di semua basis sekaligus, dengan digit dikelompokkan agar mudah dibaca. Pilih basis lain di baris terakhir, atau aktifkan Semua basis 2–36.
- 4Periksa tabel komplemen dua untuk pembacaan bertanda dan tak bertanda di setiap lebar, klik bit di tampilan bit untuk membaliknya, lalu salin bentuk yang Anda perlukan.
Cara kerja sistem bilangan posisional
Di basis mana pun, setiap digit bernilai basis dipangkatkan dengan posisinya, dihitung dari nol di sebelah kanan. Dalam desimal, 255 adalah 2×10² + 5×10¹ + 5×10⁰. Dalam biner, bilangan yang sama adalah 11111111: delapan angka satu, bernilai 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1. Dalam heksadesimal, nilainya FF: 15×16 + 15.
Basis di atas 10 membutuhkan lebih dari sepuluh simbol digit, jadi huruf melanjutkan hitungan: A adalah 10, B adalah 11, dan seterusnya hingga Z untuk 35 — itulah sebabnya 36 adalah basis terbesar yang memakai digit dan huruf biasa. Huruf dibaca tanpa membedakan huruf besar atau kecil.
Mengapa programmer memakai biner, oktal, dan hex
- Biner (basis 2)
- Cara mesin menyimpan segalanya. Berguna untuk flag bit, mask, dan subnet jaringan, tetapi panjang: nilai 32-bit memiliki 32 digit.
- Heksadesimal (basis 16)
- Setiap digit hex tepat empat bit, jadi satu byte adalah dua digit hex dan nilai 32-bit adalah delapan digit. Dipakai untuk alamat memori, warna (#FF8800), hash, UUID, dan dump byte.
- Oktal (basis 8)
- Setiap digit oktal adalah tiga bit. Kini terutama dipakai untuk izin file Unix, di mana 755 adalah tiga kelompok bit rwx — lihat <a href="/chmod-calculator">kalkulator chmod</a>.
- Basis 36 dan basis 62
- Pengenal ringkas yang tidak peka huruf besar-kecil, seperti URL pendek dan ID, memakai basis 36 (0–9 dan a–z). Basis 62 menambahkan huruf kapital dan berada di luar cakupan alat ini.
Komplemen dua dan bilangan negatif
Komputer menyimpan bilangan bulat bertanda dalam komplemen dua: pada lebar tetap n bit, bilangan negatif −x disimpan sebagai 2ⁿ − x. Pada 8 bit, −1 adalah 11111111 (0xFF), −128 adalah 10000000 (0x80), dan bit teratas sekaligus berfungsi sebagai tanda. Bilangan bulat bertanda 8-bit menampung −128 hingga 127; 8 bit yang sama jika dibaca tak bertanda menampung 0 hingga 255.
Tabel komplemen dua menampilkan kedua pembacaan untuk setiap lebar umum. Ketik 0xFFFFFFFF dan Anda melihat nilainya 4.294.967.295 sebagai bilangan bulat 32-bit tak bertanda dan −1 sebagai bertanda; ketik -42 dan Anda mendapatkan pola bitnya di setiap lebar. Jika nilai terlalu besar untuk suatu lebar, baris tersebut memberitahukannya alih-alih memotongnya diam-diam.
Bilangan besar dan presisi
Bilangan biasa di JavaScript kehilangan presisi di atas 2⁵³ (9.007.199.254.740.992), itulah sebabnya banyak konverter online salah menangani ID dan hash 64-bit. Konverter ini memakai BigInt di seluruh prosesnya, sehingga hasilnya tepat untuk bilangan sebesar apa pun — nilai 128-bit, hash SHA-256 yang dibaca sebagai bilangan bulat, atau bilangan 20.000 digit.
Hanya bilangan bulat yang dikonversi. Pecahan di basis lain jarang berakhir (0,1 dalam desimal adalah pecahan berulang tanpa akhir dalam biner), jadi untuk pola bit floating-point dan timestamp, lihat konverter Unix timestamp.
Pertanyaan yang sering diajukan
- Bagaimana cara mengonversi biner ke desimal?
- Pilih Bin, ketik bilangan biner, lalu baca baris desimal. Secara manual, jumlahkan pangkat dua untuk setiap angka 1: 1011 adalah 8 + 0 + 2 + 1 = 11.
- Bagaimana cara mengonversi desimal ke heksadesimal?
- Pilih Des, ketik bilangannya, lalu baca baris heksadesimal. Secara manual, bagi dengan 16 berulang kali dan tulis sisanya dari yang terakhir ke yang pertama: 255 ÷ 16 = 15 sisa 15, jadi 255 adalah FF.
- Apa arti prefiks 0x?
- 0x menandai bilangan heksadesimal di C, JavaScript, Python, dan sebagian besar bahasa lain, sama seperti 0b menandai biner dan 0o oktal. Konverter menerima prefiks ini pada input dan dapat menambahkannya pada output.
- Bagaimana bilangan negatif dikonversi?
- Di setiap basis, hasilnya tetap memakai tanda minus, misalnya -2A dalam hex. Tabel komplemen dua dan tampilan bit menunjukkan cara bilangan yang sama disimpan dalam bilangan bulat bertanda 8, 16, 32, 64, atau 128 bit.
- Mengapa 0xFF tampil sebagai 255 sekaligus -1?
- Delapan bit yang sama berarti 255 jika dibaca sebagai byte tak bertanda dan -1 jika dibaca sebagai byte bertanda dalam komplemen dua. Mana yang benar bergantung pada tipe yang menyimpannya.
- Apakah ada batas ukuran bilangan?
- Praktis tidak ada: bilangan hingga 20.000 digit dikonversi dengan tepat, karena konverter memakai bilangan bulat presisi sembarang, bukan floating point.
- Bisakah saya mengonversi pecahan atau desimal?
- Tidak, hanya bilangan bulat. Sebagian besar pecahan tidak memiliki representasi tepat di basis lain, jadi konverter meminta bilangan bulat alih-alih memberi jawaban yang dibulatkan.
- Apakah input saya dikirim ke suatu tempat?
- Tidak. Semua konversi terjadi di browser Anda.