Konverter Biner ke Desimal
Hasil
Desimal
- Nilai tempat
- 8 + 2 + 1
Mengubah biner menjadi desimal berarti menjumlahkan nilai tempat yang menyala dan mengabaikan yang tidak. Setiap posisi dalam sebuah bilangan biner bernilai dua pangkat berapa jauh posisi itu dari ujung kanan: yang paling kanan adalah dua pangkat nol, yaitu satu, lalu dua, empat, delapan, dan seterusnya — dua kali lipat setiap kali bergeser satu tempat. Digit di posisi itu hanya 0 atau 1, jadi setiap posisi entah menyumbang nilai tempatnya atau tidak menyumbang apa-apa, dan seluruh konversinya tidak lebih dari penjumlahan posisi-posisi yang menyala. Halaman ini menuliskan penjumlahan itu suku demi suku, dengan suku yang bernilai nol tetap ditampilkan pada baris pertama lalu dihilangkan pada baris hasilnya, karena justru baris pertamalah yang menjelaskan mengapa jawabannya berbunyi seperti itu. Kedua baris itu ditampilkan bersama nilai desimalnya, sehingga Anda bisa memeriksa hasilnya di tengah jalan alih-alih mempercayai sebuah angka begitu saja. Cara bacaan ini juga merupakan pemeriksaan untuk arah sebaliknya: ketika sebuah bilangan desimal dibagi dua berulang kali, sisa setiap pembagian adalah digit biner dari jawabannya, dibaca dari bawah ke atas.
Nilai tempat setiap bit dalam satu byte, dari yang paling kiri sampai yang paling kanan
| Bit | Pangkat | Nilai |
|---|---|---|
| 7 | 2⁷ | 128 |
| 6 | 2⁶ | 64 |
| 5 | 2⁵ | 32 |
| 4 | 2⁴ | 16 |
| 3 | 2³ | 8 |
| 2 | 2² | 4 |
| 1 | 2¹ | 2 |
| 0 | 2⁰ | 1 |
Tabel ini adalah penggaris yang dipakai untuk mengerjakan konversinya, dan tabel ini tetap: isinya tidak berubah ketika masukan di atasnya berubah, jadi tidak ada pertentangan ketika keduanya tampak tidak cocok. Panel hasil menjawab bilangan yang baru saja Anda ketik; tabel ini menjawab pertanyaan yang lebih umum, yaitu berapa nilai setiap posisi dalam sebuah byte — dan pertanyaan itulah yang muncul lebih dulu ketika Anda belum memegang bilangan apa pun. Bacalah barisnya dari atas ke bawah sebagai pembagian dua setiap kali, dan dari bawah ke atas sebagai penggandaan: 128 ada di paling kiri karena satu byte punya delapan bit, dan bit paling kanan selalu bernilai satu. Untuk memakai tabel ini pada sebuah bilangan, ambil baris yang bitnya menyala lalu jumlahkan kolom nilainya, dan lewati baris yang bitnya nol.
Rumus
1011 (biner) = 1×2³ + 0×2² + 1×2¹ + 1×2⁰ = 8 + 2 + 1 = 11
- biner
- Bilangan yang dibaca, ditulis pada basis dua. Digitnya hanya 0 dan 1, dan di halaman ini tidak ada titik biner, jadi masukan yang memuat tanda desimal akan ditolak alih-alih ditafsirkan
- 2ⁿ
- Nilai tempat sebuah posisi: dua pangkat berapa jauh posisi itu dari ujung kanan, dihitung mulai dari nol. Posisi paling kanan bernilai satu, lalu dua, empat, delapan, dan seterusnya — setiap langkah ke kiri menggandakan nilainya. Karena itulah tabel di bawah disebut penggaris: yang berubah hanyalah panjang bilangannya, bukan nilai tiap posisi
- digit × 2ⁿ
- Satu suku dari penjumlahan itu. Karena digitnya hanya 0 atau 1, perkaliannya tidak pernah menyulitkan: sukunya bernilai nilai tempat itu sendiri kalau digitnya 1, dan bernilai nol kalau digitnya 0. Suku yang bernilai nol tetap ditulis pada baris pertama supaya jumlah sukunya jelas, lalu dibuang pada baris yang sudah disederhanakan
- Σ
- Penjumlahan seluruh suku, dan inilah seluruh konversinya: jumlahkan nilai tempat dari setiap posisi yang menyala, lalu selesai. Tidak ada langkah lain, tidak ada pembagian, dan tidak ada yang perlu dihafal di luar nilai tempatnya sendiri
- 8 + 2 + 1
- Jumlah yang ditulis setelah suku bernilai nol dibuang, yaitu bentuk yang dipakai orang ketika menghitung dengan tangan. Kedua baris itu penjumlahan yang sama: yang satu menunjukkan dari mana setiap angka datang, yang satu lagi hanya bagian yang benar-benar menambah
- 53 bit
- Seberapa panjang masukan yang boleh dibaca: lima puluh tiga digit biner, yaitu 9007199254740991 dalam desimal. Batas itu adalah lebar terbesar yang masih bisa dibedakan sebuah bilangan mesin, sehingga biner yang lebih panjang ditolak dengan pesan alih-alih dibaca secara hampiran
Konversi ini dibutuhkan pada dua arah membaca. Arah majunya adalah nilai yang datang dalam biner dan harus dipahami: byte status yang dicetak sebuah debugger, kolom flag pada sebuah register, atau nilai yang dikirim perangkat di jaringan — semuanya sampai dalam bentuk biner, dan yang Anda perlukan adalah nilainya sebagai bilangan biasa supaya bisa dibandingkan dengan ambang batas, dijumlahkan dengan angka lain, atau dilaporkan kepada orang yang tidak membaca biner. Arah yang lain adalah pemeriksaan: jawaban yang sudah Anda hitung sendiri di kertas perlu dicocokkan, dan menuliskan nilai tempatnya satu per satu adalah cara mencocokkan yang menunjukkan di posisi mana kekeliruannya terjadi, bukan sekadar memberi tahu bahwa hasilnya salah. Pelajar yang baru pertama kali bertemu basis bilangan mendapat dua hal sekaligus di sini: nilai tempat adalah penggaris yang sama dengan sistem desimal, hanya saja pengalinya dua dan bukan sepuluh, dan penulisan sukunya membuat hal itu terlihat. Orang yang sedang menyiapkan soal, menerjemahkan dokumentasi perangkat keras, atau memeriksa keluaran sebuah program memakai jalur yang sama, karena mengubah biner menjadi desimal adalah langkah pertama dari hampir semua pemeriksaan semacam itu.
Contoh hitungan
Membaca 1011
- Tulis nilai tempat di atas setiap digit, dari kanan: 8; 4; 2; 1
- Digit paling kanan adalah 1, jadi posisi itu menyumbang 1
- Digit kedua dari kanan adalah 1, jadi posisi itu menyumbang 2
- Digit ketiga dari kanan adalah 0, jadi posisinya tidak menyumbang apa-apa
- Digit paling kiri adalah 1, jadi posisi itu menyumbang 8
- Jumlahkan yang menyala saja: 8 + 2 + 1 = 11
Contoh pembuka halaman ini, dan contoh yang paling berguna untuk dikerjakan dengan tangan: empat digit berarti empat nilai tempat, dan tiga di antaranya menyala. Perhatikan bahwa angka nol di tengah bukan tempat kosong yang boleh dilewati begitu saja — posisinya tetap memakan satu tempat, dan justru itulah yang menjaga digit di sebelah kirinya tetap bernilai delapan dan bukan empat.
Membaca satu byte penuh, 10110010
- Delapan digit berarti delapan nilai tempat, dari 128 di kiri sampai 1 di kanan
- Digit yang menyala adalah posisi 128, 32, 16, dan 2
- Jumlahkan keempatnya: 128 + 32 + 16 + 2 = 178
- Digit yang bernilai nol ada empat, dan keempatnya tidak menambah apa pun
Ini satu byte — delapan bit — dan panjang itulah yang membuat tabel di bawah berguna: delapan nilai tempatnya tetap, sehingga Anda dapat membacanya sekali lalu memakainya untuk byte mana pun. Perhatikan bahwa jumlahnya tidak berurutan rapi seperti contoh sebelumnya: yang menyala adalah 128, lalu melompati 64, mengenai 32 dan 16, melompati 8 dan 4, dan berhenti di 2. Nilai tempat tidak perlu menyala berurutan, dan tidak ada yang salah ketika sebuah bilangan melompatinya.
Angka nol di depan tidak mengubah nilainya
- Empat angka nol di depan tidak menyala, jadi keempatnya tidak menyumbang apa pun
- Delapan digit tetap delapan posisi, dan yang menyala tetap 8, 2, dan 1
- Jumlahnya tetap 8 + 2 + 1 = 11
Panjang bilangan biner tidak menentukan nilainya — yang menentukan adalah posisi mana yang menyala. Di banyak perangkat keras angka nol di depan justru wajib ada, karena panjangnya menyatakan lebar sebuah register dan bukan besar nilainya: sebuah bacaan delapan bit selalu ditulis delapan digit, walaupun nilainya cuma sebelas. Halaman ini membuang nol di depan pada jawabannya, jadi jangan heran kalau jawabannya lebih pendek daripada masukannya.
Membaca nilai negatif, -1011
- Tanda minus di paling depan adalah tanda nilainya, bukan salah satu digit
- Sisa digitnya dibaca persis seperti sebelumnya: 8 + 2 + 1 = 11
- Tandanya dibawa ke hasilnya, jadi jawabannya -11
Halaman ini membaca tanda minus di depan sebagai tanda nilai, sama seperti yang Anda tulis di kertas, dan bukan sebagai komplemen dua — yaitu representasi yang dipakai prosesor ketika menyimpan bilangan negatif dalam bit berlebar tetap. Keduanya cara yang sah untuk menyatakan nilai negatif, tetapi yang satu menyatakan tandanya dan yang satu lagi melipat nilainya ke dalam pola bit; mencampur keduanya adalah sumber kesalahan yang paling sering terjadi ketika orang membaca keluaran perangkat keras.
Batasan
Halaman ini hanya membaca bilangan biner yang bulat. Tidak ada titik biner, jadi 1,01 tidak diterima dan tidak bisa dikonversi — pembacaan pecahan memerlukan bobot posisi di sisi lain titik itu, dan skema itu tidak ditawarkan di sini. Masukannya dibatasi lima puluh tiga digit biner, yaitu 9007199254740991 dalam desimal; biner yang lebih panjang tidak bisa lagi dijamin tepat kalau dibaca sebagai bilangan mesin, jadi ditolak dengan pesan alih-alih dijawab secara hampiran. Angka nol di depan tidak mengubah apa pun dan boleh ditulis sebanyak yang Anda suka, sedangkan tanda minus hanya diterima di paling depan sebagai tanda nilai negatif, bukan sebagai komplemen dua. Halaman ini mengubah biner menjadi desimal saja; arah sebaliknya dan bentuk heksadesimalnya punya halaman sendiri.
Pertanyaan yang sering diajukan
- Bagaimana cara mengubah biner ke desimal dengan tangan?
- Tulis nilai tempat di atas setiap digit, mulai dari satu di ujung kanan dan menggandakan setiap langkah ke kiri. Lalu buang setiap posisi yang digitnya nol dan jumlahkan sisanya. Untuk 1011 hasilnya 8 + 2 + 1 = 11. Tidak ada langkah lain — tidak ada pembagian dan tidak ada perkalian yang perlu dikerjakan, karena setiap digitnya hanya 0 atau 1, sehingga setiap posisi entah menyumbang nilai tempatnya secara penuh atau tidak menyumbang sama sekali.
- Mengapa jawabannya tidak memuat nilai tempat yang di bawahnya nol?
- Karena nilai tempat yang digitnya nol menambah nol, jadi menuliskannya tidak mengubah jumlahnya. Halaman ini menampilkannya dua kali dengan sengaja: baris pertama menulis setiap posisi supaya Anda bisa melihat bahwa tidak ada yang terlewat, lalu baris hasil membuang suku yang bernilai nol supaya yang tersisa hanya bagian yang benar-benar menambah. Keduanya penjumlahan yang sama, dan perbedaan antara keduanya adalah kenyamanan membaca, bukan perbedaan hasil.
- Apakah angka nol di depan mengubah nilainya?
- Tidak. Angka nol di depan menempati posisi, tetapi posisinya tidak menyala, jadi tidak ada yang ditambahkan. Justru sebaliknya yang perlu diingat: nol di depan sering wajib ditulis pada perangkat keras, karena panjang bilangan biner menyatakan lebar sebuah register sementara nilainya tidak. Sebuah bacaan delapan bit selalu ditulis delapan digit walaupun nilainya cuma sebelas, dan halaman ini membuang nol di depan pada jawabannya sehingga jawaban bisa lebih pendek daripada masukan.
- Berapa bilangan biner terbesar yang bisa saya konversi di sini?
- Lima puluh tiga digit biner, yaitu 9007199254740991 dalam desimal. 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, sehingga jawabannya akan tampak masuk akal padahal sudah tidak tepat. Masukan yang lebih panjang ditolak dengan pesan, bukan dipotong atau dibulatkan.
- Apakah ini sama dengan membagi dua berulang kali?
- Keduanya konversi yang sama, dibaca dari arah yang berlawanan. Membagi sebuah bilangan desimal dengan dua berulang kali menghasilkan sisa 0 atau 1 pada setiap langkah, dan sisa-sisa itulah digit biner dari jawabannya — dibaca dari bawah ke atas. Halaman ini mengerjakannya dari sisi yang lain: nilai tempatnya dijumlahkan dari atas, bukan sisanya dikumpulkan dari bawah. Jadi kalau Anda sudah mengerjakan yang satu, hasilnya harus sama dengan yang lain, dan perbedaan hasil di antara keduanya menandakan ada langkah yang perlu diperiksa.
- Bisakah saya mengonversi bilangan biner yang punya bagian pecahan?
- Belum. Halaman ini membaca bilangan bulat saja, jadi 1,01 ditolak. Membaca pecahan biner sebenarnya mungkin dan mirip dengan cara desimal bekerja — posisi di sebelah kanan titik bernilai setengah, seperempat, seperdelapan, dan seterusnya — tetapi skema itu memerlukan titik biner sebagai penanda posisi, dan halaman ini tidak menawarkannya. Diberikan masukan yang memuat tanda desimal, halaman ini menolak alih-alih menebak maksudnya.
Referensi
- Binary number — positional notation, place values, and the conversion between base two and base ten — 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 1, 2, 4, 8, 16 … that a binary number's place values are taken from, catalogued as OEIS A000079 — OEIS Foundation Inc. (United States)