Konverter Basis Bilangan

Masukkan bilangan bulat dalam basis apa pun dari 2 hingga 36 atau Base62, dan lihat hasilnya dalam biner, oktal, desimal, heksadesimal, Base36, dan Base62 sekaligus. Bilangan sepanjang apa pun dikonversi secara tepat.

Berjalan sepenuhnya di browser Anda. Tidak ada yang diunggah.

Cara menggunakan

  1. Masukkan bilangan yang ingin Anda konversi di kolom Bilangan.
  2. Pilih Basis masukan, yaitu basis yang dipakai untuk menulis bilangan tersebut, dari 2 hingga 36 atau Base62.
  3. Baca hasilnya dalam biner, oktal, desimal, hex, Base36, dan Base62 sekaligus.
  4. Untuk basis lainnya, pilih basis tersebut di Basis kustom.

Bilangan, bukan byte

Alat ini mengonversi nilai sebuah bilangan. Bilangan desimal 255 adalah 11111111 dalam biner, 377 dalam oktal, ff dalam hex, dan 73 dalam Base36.

Pengodean byte seperti Base16 dan Base2 melakukan hal yang lain: keduanya mengenkode teks atau file. Teks 255 terdiri dari tiga karakter, yang disimpan sebagai byte 32 35 35 dalam hex, atau 00110010 00110101 00110101 dalam biner. Gunakan halaman ini untuk hex dari sebuah bilangan, dan encoder byte untuk hex dari karakter atau file.

Cara kerja basis posisional

Dalam setiap basis, setiap digit bernilai basis dipangkatkan dengan posisinya, dihitung dari kanan mulai dari nol. Hex ff adalah 15 × 16 + 15 = 255, dan biner 11111111 adalah 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 255. Basis di atas 10 melanjutkan digitnya dengan huruf, sehingga dalam Base36 a berarti 10 dan z berarti 35. Base62 juga menambahkan huruf dengan kapitalisasi yang lain, sehingga di sana huruf besar dan huruf kecil memiliki nilai yang berbeda.

Satu digit hex mewakili tepat 4 bit dan satu digit oktal mewakili 3 bit. Itulah sebabnya programmer memakai hex dan oktal sebagai cara singkat untuk menulis biner: 1111 1111 menjadi ff kelompok demi kelompok.

Bilangan besar dan bilangan negatif

Konverter ini memakai bilangan bulat dengan presisi sembarang (BigInt JavaScript), sehingga bilangan yang panjang tetap tepat. Banyak kalkulator dan bilangan JavaScript biasa kehilangan presisi di atas 9007199254740991 (2 pangkat 53, dikurangi 1). Misalnya, parseInt('ffffffffffffffff', 16) menghasilkan 18446744073709552000, padahal nilai yang benar, yaitu bilangan bulat 64-bit tak bertanda terbesar, adalah 18446744073709551615.

Bilangan negatif dikonversi beserta tanda minusnya, sehingga -255 adalah -ff dalam hex. Ini bukan bentuk komplemen dua yang dipakai untuk bilangan bulat berlebar tetap di memori. Untuk mendapatkannya, tambahkan dulu 2 pangkat lebar bitnya: untuk 8 bit, -1 + 256 = 255, yaitu ff. Hanya bilangan bulat yang didukung, bukan pecahan. Semuanya berjalan di browser Anda.

Konversi basis dalam kode

// JavaScript
parseInt('ff', 16);                          // 255
(255).toString(2);                           // '11111111'
BigInt('0xffffffffffffffff').toString(10);   // '18446744073709551615'

# Python
int('ff', 16)                  # 255
bin(255), oct(255), hex(255)   # ('0b11111111', '0o377', '0xff')

Pertanyaan yang sering diajukan

Bagaimana cara mengonversi biner ke desimal?

Masukkan bilangan biner, pilih basis 2, lalu baca hasil desimalnya. Secara manual, jumlahkan nilai tempat setiap digit 1: 1010 dalam biner adalah 8 + 2 = 10.

Bagaimana cara mengonversi desimal ke hex?

Masukkan bilangan dengan basis 10 terpilih, lalu baca hasil hex-nya. Secara manual, bagi dengan 16 berulang kali dan tulis sisa pembagiannya dalam urutan terbalik: 255 dibagi 16 adalah 15 sisa 15, yang menghasilkan ff.

Apakah ada batas ukuran bilangan?

Tidak ada batas tetap. Alat ini memakai aritmetika BigInt, sehingga bilangan dengan ratusan digit pun dikonversi secara tepat. Bilangan yang sangat panjang hanya memerlukan waktu sedikit lebih lama.

Mengapa hex dari 255 di sini berbeda dengan hasil encoder Base16?
Halaman ini mengonversi bilangan 255, yaitu ff. Encoder Base16 mengonversi teks 255, yaitu tiga karakter dengan byte 32 35 35. Gunakan yang sesuai dengan data Anda.
Bisakah saya mengonversi bilangan pecahan?

Tidak. Konverter ini hanya bekerja dengan bilangan bulat. Pecahan seperti 0,1 sering kali tidak memiliki representasi yang tepat dalam basis lain, sehingga berada di luar cakupannya.