Basis bilangan hanyalah soal berapa banyak angka yang dipakai untuk menulis bilangan yang sama
Basis bilangan adalah jumlah angka yang tersedia untuk satu digit. Sistem desimal (basis 10) memakai sepuluh angka, 0 sampai 9, dan nilai tiap digit naik 10 kali lipat setiap bergeser satu posisi ke kiri. Sistem biner (basis 2) hanya memakai 0 dan 1, sehingga nilainya naik 2 kali lipat per posisi. Karena itu 255 yang tiga digit dalam desimal ditulis 1111 1111 (delapan digit) dalam biner dan FF (dua digit) dalam heksadesimal. Nilainya sama, hanya cara menuliskannya yang berbeda.
Alat ini menyejajarkan kolom biner, oktal, desimal, dan heksadesimal dengan satu kolom yang basisnya bisa Anda pilih sendiri (2 sampai 36). Isi kolom mana pun, dan kolom lainnya langsung ditulis ulang. Bilangan negatif, pecahan, dan bilangan besar sampai 1 000 digit dikonversi tanpa pembulatan, dan pecahan biner yang tidak berhenti ditandai dengan tanda kurung pada bagian yang berulang. Tabel bit dan langkah perhitungan di bawahnya memperlihatkan bagaimana komputer menyimpan bilangan itu dan bagaimana Anda bisa menghitungnya dengan tangan.
Kapan Anda perlu berpindah basis
Manusia berhitung dalam desimal, tetapi komputer menyimpan semua nilai sebagai bit, yaitu 0 dan 1. Deretan bit terlalu panjang untuk dibaca langsung, jadi programmer meringkas 4 bit menjadi 1 digit heksadesimal atau 3 bit menjadi 1 digit oktal. Itulah alasan Anda sering berpindah basis dalam pekerjaan berikut.
- Kode warna: warna CSS
#1E90FFterdiri dari tiga pasang digit heksadesimal untuk intensitas merah, hijau, dan biru. 00 paling redup, FF (255 dalam desimal) paling terang, dan 1E sama dengan 30, sedangkan 90 sama dengan 144. - Izin file: pada perintah Linux
chmod 755, setiap digit adalah bilangan oktal. Tiga digit biner mengatur izin baca (4), tulis (2), dan eksekusi (1). Angka 7 berarti 111, jadi ketiganya aktif, sedangkan 5 berarti 101, jadi izin tulis mati. - Jaringan: subnet mask 255.255.255.0 terdiri dari empat bagian 8 bit. Dalam biner, ia berisi 24 angka 1 diikuti 8 angka 0, sehingga mask yang sama bisa disingkat menjadi /24.
- Memori dan byte: satu byte (8 bit) pas ditulis dengan dua digit heksadesimal (00 sampai FF). Karena itulah alamat memori, nilai hash, dan isi file biasanya ditampilkan dalam heksadesimal.
- Membaca bilangan negatif: variabel bilangan bulat di komputer tidak menyimpan −5 sebagai tanda dan angka 5 secara terpisah. Pada 8 bit, ia disimpan sebagai pola komplemen dua seperti 1111 1011. Saat melihat FB di log komunikasi, Anda harus mempertimbangkan lebar bit dan tanda untuk memutuskan apakah nilainya −5 atau 251.
- Galat pecahan: 0.1 tidak berhenti dalam biner, sehingga komputer membulatkannya ke nilai terdekat. Itu sebabnya 0.1 + 0.2 di JavaScript menghasilkan 0.30000000000000004, bukan 0.3.
- Tugas matematika: soal yang meminta Anda menulis atau mengubah bilangan dalam basis selain 10, seperti basis 5 atau basis 3, diselesaikan dengan pembagian dan nilai tempat. Bagian langkah pada alat ini memperlihatkan prosesnya apa adanya.
Cara memakai
- Isi kolom yang sesuai dengan basis bilangan asal. Untuk FF heksadesimal, isi kolom heksadesimal; untuk 1010 biner, isi kolom biner. Kolom lainnya langsung berubah.
- Untuk basis lain seperti 3, 5, atau 36, pilih basisnya (2 sampai 36) di sisi kiri kolom kelima, lalu isi bilangannya.
- Untuk bilangan negatif, awali dengan −. Tulis titik desimal dengan titik (.), bukan koma. Pecahan berulang ditulis dengan tanda kurung pada bagian yang berulang, misalnya 0.1(6). Awalan 0x, 0b, dan 0o, serta digit yang dikelompokkan dengan spasi atau garis bawah (_), boleh dimasukkan apa adanya.
- Pilih lebar bit (8, 16, 32, atau 64 bit) pada tabel bit untuk melihat pola komplemen dua dan pola heksadesimal pada lebar itu. Ketuk satu kotak, dan nilai dengan bit yang terbalik itu masuk ke kolom di atas.
- Pilih basis tujuan pada bagian langkah untuk melihat tangga pembagian dan perhitungan nilai tempat. Tombol salin hanya menyalin nilainya tanpa spasi pengelompok, dan tombol tautan membuat alamat yang membuka nilai saat ini.
Angka yang dipakai tiap basis
Untuk basis di atas 10, huruf dipakai mulai dari nilai 10. A berarti 10, F berarti 15, dan Z berarti 35, sehingga penulisan bisa sampai basis 36. int() di Python dan toString() di JavaScript juga menerima basis 2 sampai 36. Huruf besar dan huruf kecil dibaca sebagai angka yang sama.
| Basis | Angka yang dipakai | 255 | Awalan di kode | Sering muncul di |
|---|---|---|---|---|
| Basis 2 | 0, 1 | 1111 1111 | 0b | Bit, flag, mask |
| Basis 8 | 0–7 | 377 | 0o | Izin file |
| Basis 10 | 0–9 | 255 | Tidak ada | Angka sehari-hari |
| Basis 16 | 0–9, A–F | FF | 0x | Kode warna, memori, hash |
| Basis 36 | 0–9, A–Z | 73 | Tidak ada | ID pendek |
Dari basis n ke desimal: kalikan nilai tempat lalu jumlahkan
Mulai dari digit paling kanan, kalikan berturut-turut dengan n⁰, n¹, n², dan seterusnya, lalu jumlahkan semuanya. Heksadesimal 1ED adalah 1 × 16² + 14 × 16¹ + 13 × 16⁰ = 256 + 224 + 13 = 493. Digit di belakang titik desimal dikalikan dengan n⁻¹, n⁻², dan seterusnya, sehingga biner 0.101 sama dengan 1/2 + 0/4 + 1/8 = 0.625.
| Posisi | 16² | 16¹ | 16⁰ | Jumlah |
|---|---|---|---|---|
| Digit | 1 | E (14) | D (13) | |
| Nilai tempat | 256 | 16 | 1 | |
| Digit × nilai tempat | 256 | 224 | 13 | 493 |
Dari desimal ke basis n: bagi bagian bulat, kalikan bagian pecahan
Untuk bagian bulat, bagi dengan n, tulis sisanya di samping, lalu bagi lagi hasil baginya dengan n. Berhenti ketika hasil bagi sudah lebih kecil dari n, kemudian baca sisanya dari bawah ke atas, dimulai dari hasil bagi terakhir. Cara ini disebut tangga pembagian, dan bagian langkah di atas menggambarnya dalam bentuk yang sama.
| Pembagian | Hasil bagi | Sisa |
|---|---|---|
| 13 ÷ 2 | 6 | 1 |
| 6 ÷ 2 | 3 | 0 |
| 3 ÷ 2 | 1 | 1 |
| Baca ke atas | 1101 |
Bagian pecahan dikerjakan sebaliknya, yaitu dengan mengalikan n. Ambil bagian bulat dari hasil kali dan tuliskan, lalu kalikan lagi sisa pecahannya dengan n, dan ulangi sampai sisa pecahan menjadi 0. Dari 0.625 × 2 = 1.25 diambil 1, dari 0.25 × 2 = 0.5 diambil 0, dan dari 0.5 × 2 = 1 diambil 1. Angka yang diambil dibaca dari atas ke bawah, sehingga hasilnya 0.101.
Pecahan yang tidak berhenti dalam biner
Setelah pecahan disederhanakan, jika semua faktor prima penyebutnya merupakan faktor prima basis tersebut, penulisannya berhenti. Jika ada satu saja faktor prima lain, deretan digitnya berulang tanpa henti. Faktor prima basis 2 hanya 2, sehingga 0.5, 0.25, dan 0.125 yang penyebutnya pangkat dua akan berhenti. Namun 0.1 = 1/10 memiliki faktor 5 pada penyebutnya, sehingga ditulis 0.0(0011), dengan 0011 yang berulang tanpa akhir. Ini sama seperti 1/3 yang dalam desimal menjadi 0.333… dan tidak pernah berakhir.
| Desimal | Pecahan | Biner | Heksadesimal |
|---|---|---|---|
0.5 | 1/2 | 0.1 | 0.8 |
0.25 | 1/4 | 0.01 | 0.4 |
0.125 | 1/8 | 0.001 | 0.2 |
0.75 | 3/4 | 0.11 | 0.C |
0.1 | 1/10 | 0.0(0011) | 0.1(9) |
0.2 | 1/5 | 0.(0011) | 0.(3) |
0.3 | 3/10 | 0.0(1001) | 0.4(C) |
0.(3) | 1/3 | 0.(01) | 0.(5) |
Bilangan pecahan di komputer (presisi ganda IEEE 754) dibulatkan pada 53 bit signifikan, sehingga 0.1 tidak tersimpan sebagai tepat 1/10, melainkan sebagai 0.1000000000000000055511151231257827021181583404541015625. Itu sebabnya hasil penjumlahan 0.1 sebanyak tiga kali tidak persis sama dengan 0.3. Alat ini menyimpan nilai sebagai pecahan saat menghitung, sehingga bisa menampilkan bagian yang berulang tanpa pembulatan.
Biner ke oktal atau heksadesimal bisa langsung dikelompokkan
Karena 16 adalah 2⁴ dan 8 adalah 2³, biner yang dikelompokkan 4 digit dari kanan menjadi 1 digit heksadesimal, dan yang dikelompokkan 3 digit menjadi 1 digit oktal. Anda tidak perlu melewati desimal. Misalnya 1 1110 1101 dilengkapi angka 0 di depan menjadi 0001 1110 1101, yaitu 1, E, dan D, sehingga hasilnya heksadesimal 1ED. Jika dikelompokkan 3 digit menjadi 111 101 101, hasilnya oktal 755.
| Biner | Heksa | Biner | Heksa | Biner | Heksa | Biner | Heksa |
|---|---|---|---|---|---|---|---|
0000 | 0 | 0100 | 4 | 1000 | 8 | 1100 | C |
0001 | 1 | 0101 | 5 | 1001 | 9 | 1101 | D |
0010 | 2 | 0110 | 6 | 1010 | A | 1110 | E |
0011 | 3 | 0111 | 7 | 1011 | B | 1111 | F |
Bilangan negatif dan komplemen dua
Kolom-kolom di atas menulis bilangan negatif dengan tanda dan besarnya, seperti −5. Namun variabel bilangan bulat di komputer tidak menyimpan tanda secara terpisah, melainkan memakai komplemen dua. Jika semua bit pola bilangan positif dibalik lalu ditambah 1, hasilnya adalah pola bilangan negatif dengan besar yang sama. Pada 8 bit, 5 adalah 0000 0101, dibalik menjadi 1111 1010, dan setelah ditambah 1 menjadi 1111 1011 (heksadesimal FB), yaitu −5. Jika bit paling kiri bernilai 1, pola itu dibaca sebagai bilangan negatif, sedangkan 1111 1011 yang sama dibaca sebagai bilangan tanpa tanda bernilai 251.
| Pola 8 bit | Heksadesimal | Tanpa tanda | Komplemen dua |
|---|---|---|---|
0111 1111 | 7F | 127 | 127 |
0000 0001 | 01 | 1 | 1 |
0000 0000 | 00 | 0 | 0 |
1111 1111 | FF | 255 | −1 |
1111 1011 | FB | 251 | −5 |
1000 0000 | 80 | 128 | −128 |
| Lebar | Tanpa tanda | Komplemen dua | Tipe Java |
|---|---|---|---|
| 8 bit | 0 sampai 255 | −128 sampai 127 | byte |
| 16 bit | 0 sampai 65 535 | −32 768 sampai 32 767 | short |
| 32 bit | 0 sampai 4 294 967 295 | −2 147 483 648 sampai 2 147 483 647 | int |
| 64 bit | 0 sampai 18 446 744 073 709 551 615 | −9 223 372 036 854 775 808 sampai 9 223 372 036 854 775 807 | long |
Jika nilai tidak muat pada lebar yang dipilih, bit-bit teratasnya dipotong. Angka 300 yang dimasukkan ke 8 bit hanya menyisakan 8 bit terbawah, yaitu 0010 1100, sehingga menjadi 44. Jika Anda memilih lebar 8 pada tabel bit, hasil pemotongan itu muncul bersama peringatannya.
Kesalahan yang sering terjadi
- Memasukkan bilangan ke kolom basis yang salah: 1010 pada kolom desimal bernilai seribu sepuluh, dan baru bernilai 10 jika dimasukkan ke kolom biner. Deretan angka yang sama bisa bernilai sangat berbeda, tergantung basis yang dipakai untuk membacanya.
- Memasukkan awalan ke kolom lain: 0x menandakan heksadesimal, sehingga tidak bisa dibaca di kolom desimal. Dalam kasus itu, alat ini menampilkan tombol untuk memindahkan isinya ke kolom heksadesimal.
- Huruf O dan angka 0, huruf l kecil dan angka 1: O adalah angka bernilai 24 dan L bernilai 21, sehingga masing-masing baru bisa dipakai pada basis 25 dan basis 22 ke atas. Heksadesimal hanya memiliki A sampai F.
- Memakai koma sebagai tanda desimal: dalam tulisan Indonesia, setengah ditulis 0,5. Alat ini dan bahasa pemrograman memakai titik, yaitu 0.5. Koma tidak diterima di kolom mana pun, jadi 0,5 akan ditolak dan Anda perlu menulis 0.5. Untuk bilangan besar, pakai spasi sebagai pemisah, bukan titik, misalnya 4 294 967 295.
- Angka 0 di depan: 0755 dan 755 adalah bilangan yang sama. Namun dalam kode bahasa C, bilangan bulat yang diawali 0 dibaca sebagai oktal, sehingga jangan menambahkan 0 di depan saat menulis bilangan desimal.
- Membaca komplemen dua tanpa menentukan lebar: FB adalah −5 pada komplemen dua 8 bit, tetapi jika dilihat sebagai 00FB pada 16 bit, nilainya 251. Anda harus menentukan dulu jumlah bitnya sebelum bisa memastikan apakah nilainya negatif.
Batasan
- Angka yang dimasukkan paling banyak 1 000 digit. Bilangan biasa di JavaScript kehilangan ketelitian setelah melewati 2⁵³ − 1 (9 007 199 254 740 991), tetapi alat ini menghitung dengan pecahan BigInt sehingga hasilnya tetap tepat sampai digit terakhir meski melewati batas itu.
- Jika bagian pecahan tidak berhenti dan tidak mulai berulang dalam 256 digit, bagian setelahnya dipotong dan diganti …. Perhitungan memakai pecahan, sehingga nilai di kolom lain tidak menumpuk galat, tetapi jika Anda mengubah langsung kolom yang dipotong dengan …, hanya digit sampai bagian yang dipotong itu yang dibaca.
- Tabel bit hanya menggambar bilangan bulat sampai 128 bit. Untuk bilangan yang lebih besar, lihat seluruhnya di kolom biner.
- Susunan bit bilangan titik mengambang (IEEE 754), bilangan titik tetap, basis negatif, dan operasi seperti penjumlahan atau pengurangan antarbasis tidak tercakup.
- Semua perhitungan berlangsung di dalam peramban ini saja, dan nilai yang Anda masukkan tidak dikirim ke server.
Acuan: aturan basis dan awalan diperiksa pada dokumentasi Python dan spesifikasi ECMAScript, rentang komplemen dua pada spesifikasi bahasa Java, serta contoh izin, warna, dan jaringan pada dokumen POSIX, CSS, dan RFC, semuanya pada 22 Oktober 2026. Nilai dalam tabel dihitung ulang dengan inti perhitungan alat ini dan dicocokkan.
Sumber
- 01Python: int()Basis 2 sampai 36, nilai 10 sampai 35 ditulis a sampai z, awalan 0b, 0o, 0x, dan garis bawah antardigit
- 02ECMA-262: Number.prototype.toStringBasis (radix) adalah bilangan bulat 2 sampai 36
- 03MDN: Number.prototype.toString()Basis di bawah 2 atau di atas 36 menimbulkan RangeError
- 04MDN: BigIntBilangan bulat besar yang tidak bisa diwakili bilangan biasa
- 05MDN: Number.MAX_SAFE_INTEGERBilangan bulat terbesar yang tepat, 2⁵³ − 1
- 06Tutorial Python: Aritmetika Floating-Point1/10 berulang tanpa akhir dalam biner dan disimpan sebagai pendekatan 53 bit
- 07Spesifikasi Java 4.2.1: Integral Types and ValuesBilangan bulat komplemen dua 8, 16, 32, dan 64 bit beserta rentangnya
- 08POSIX: chmodTabel bit izin oktal (0400 baca, 0200 tulis, 0100 eksekusi)
- 09CSS Color Module Level 4: hex notation#rrggbb berisi pasangan digit untuk merah, hijau, biru; ff sama dengan 255
- 10RFC 4632 3.1: Basic Concept and Prefix Notation/24 berarti 24 bit pertama bernilai 1 dan 8 bit terakhir bernilai 0
- 11cppreference: Integer constant (C)Konstanta bilangan bulat yang diawali 0 adalah oktal
Pertanyaan yang sering diajukan
Bagaimana cara mengubah desimal ke biner?
Bagi bilangan dengan 2 sambil menulis sisanya di samping, lalu bagi lagi hasil baginya dengan 2 sampai hasil bagi menjadi 1. Baca sisanya dari bawah ke atas, dimulai dari hasil bagi terakhir 1, dan itulah bilangan binernya. Untuk 13: 6 sisa 1, 3 sisa 0, 1 sisa 1, sehingga hasilnya 1101.
Bagaimana cara mengubah biner ke desimal?
Mulai dari digit paling kanan, kalikan dengan pangkat dua: 1, 2, 4, 8, 16, dan seterusnya, lalu jumlahkan. 1010 sama dengan 8 + 0 + 2 + 0 = 10, dan 1111 1111 sama dengan jumlah dari 128 sampai 1, yaitu 255.
FF heksadesimal sama dengan berapa dalam desimal?
255. F bernilai 15, sehingga 15 × 16 + 15 = 255. Dalam biner nilainya 1111 1111 dan dalam oktal 377. Ini nilai terbesar yang muat dalam satu byte, dan dalam kode warna ia menandai tingkat paling terang.
Bagaimana cara menulis bilangan negatif dalam biner?
Saat menulis dengan tangan, kita memberi tanda − di depan seperti −101, tetapi komputer menyimpannya sebagai komplemen dua. Semua bit pola bilangan positif dibalik, lalu ditambah 1. Pada 8 bit, −5 adalah 0000 0101 yang dibalik menjadi 1111 1010 lalu ditambah 1, hasilnya 1111 1011 (heksadesimal FB). Pilih lebar bit di tabel bit untuk memeriksanya.
Mengapa 0.1 dalam biner tidak pernah berhenti?
Karena 0.1 adalah 1/10 dan penyebut 10 mengandung faktor 5, sedangkan satu-satunya faktor prima basis 2 adalah 2, sehingga pecahan itu tidak bisa ditulis habis. Hasilnya 0.0(0011), dengan 0011 yang berulang tanpa henti. Komputer membulatkannya pada 53 bit, sehingga 0.1 + 0.2 tidak persis sama dengan 0.3.
Adakah cara cepat mengubah biner ke heksadesimal atau oktal?
Ada. Kelompokkan biner 4 digit dari kanan untuk mendapat 1 digit heksadesimal, atau 3 digit untuk 1 digit oktal. 1 1110 1101 dikelompokkan 4 digit menjadi 0001 1110 1101, yaitu 1ED, dan dikelompokkan 3 digit menjadi 111 101 101, yaitu 755.
Apa itu 0x, 0b, dan 0o?
Itu awalan di dalam kode yang menunjukkan basis suatu bilangan. 0x untuk heksadesimal, 0b untuk biner, dan 0o untuk oktal, dan notasi ini dipakai di Python dan JavaScript. Alat ini tetap membaca bilangan yang ditempel lengkap dengan awalan, dan menyalinnya dengan awalan jika opsi awalan diaktifkan.
Sampai basis berapa dan berapa digit yang bisa dikonversi?
Dari basis 2 sampai basis 36. Nilai 10 sampai 35 ditulis dengan huruf A sampai Z, dan huruf besar maupun kecil dibaca sebagai angka yang sama. Anda bisa memasukkan sampai 1 000 digit, dan bilangan besar tetap tepat sampai digit terakhir karena dihitung dengan pecahan BigInt.