Konverter Desimal ke Biner
Hasil
Biner
- Nilai tempat
- 16 + 1
Mengubah bilangan desimal menjadi biner dilakukan dengan membagi dua berulang kali dan mengumpulkan sisanya. Setiap pembagian menghasilkan sisa 0 atau 1 — tidak mungkin yang lain, karena pembaginya dua — dan sisa itulah satu digit dari jawabannya. Yang membedakannya dari konversi basis lain adalah urutan pembacaannya: putaran pertama menemukan digit yang paling kanan, putaran kedua digit di sebelah kirinya, dan seterusnya, sehingga sisa-sisanya harus dibaca dari bawah ke atas dan bukan dari atas ke bawah. Pembagiannya berhenti ketika hasil baginya mencapai nol, karena hasil bagi nol berarti tidak ada lagi posisi di atas yang menyala. Halaman ini menuliskan setiap putaran pembagiannya, bukan hanya jawabannya, dan itu disengaja: kekeliruan pada konversi ini hampir selalu berupa urutan yang terbalik atau satu putaran yang terlewat, dan keduanya hanya terlihat kalau langkahnya ditampilkan. Jawabannya juga ditampilkan sebagai penjumlahan nilai tempat, sehingga Anda bisa mencocokkannya dengan arah sebaliknya — dari biner ke desimal — dan memastikan kedua arah menghasilkan bilangan yang sama.
Membagi 17 dengan dua, satu putaran setiap kali, sampai hasil baginya mencapai nol
| Putaran | Pembagian | Hasil bagi | Sisa |
|---|---|---|---|
| 1 | 17 ÷ 2 | 8 | 1 |
| 2 | 8 ÷ 2 | 4 | 0 |
| 3 | 4 ÷ 2 | 2 | 0 |
| 4 | 2 ÷ 2 | 1 | 0 |
| 5 | 1 ÷ 2 | 0 | 1 |
Tabel ini menampilkan metodenya, bukan sebuah hasil, dan itulah sebabnya isinya tetap pada 17 sementara panel di atasnya mengubah bilangan apa pun yang Anda ketik. Bacalah kolom sisa dari bawah ke atas dan digit jawabannya muncul berurutan: 1, 0, 0, 0, 1, yaitu 10001. Kolom itu memang harus dibaca dari bawah, karena setiap pembagian menemukan digit yang paling kanan dari apa yang tersisa: putaran pertama memastikan tempat satuan, putaran kedua tempat duaan, dan seterusnya, sehingga putarannya berjalan dari kanan ke kiri melalui jawabannya. Prosesnya boleh berhenti ketika hasil baginya mencapai nol karena hasil bagi nol berarti tidak ada lagi posisi di atasnya yang menyala. Dua hal yang perlu diperhatikan pada tabel ini: setiap sisanya bernilai 0 atau 1 dan tidak mungkin yang lain, karena pembaginya dua; dan hasil baginya menyusut lebih dari separuh setiap putaran, sehingga tangga untuk masukan terbesar yang diterima pun hanya sekitar lima puluh baris. Kalau Anda mengubah bilangan lain, ikuti saja keempat kolom yang sama di kertas — tabel ini memberi tahu Anda apa saja kolomnya, bukan berapa angka Anda nanti.
Rumus
17 ÷ 2 = 8 sisa 1 → 8 ÷ 2 = 4 sisa 0 → 4 ÷ 2 = 2 sisa 0 → 2 ÷ 2 = 1 sisa 0 → 1 ÷ 2 = 0 sisa 1 ⇒ 17 = 10001 = 16 + 1
- 17
- Bilangan yang diubah, ditulis pada basis sepuluh. Di halaman ini masukannya harus bilangan bulat: tidak ada tanda desimal dan tidak ada pemisah ribuan, karena keduanya akan ditolak oleh kotak masukan
- ÷ 2
- Langkah yang diulang. Membagi dua adalah cara membaca basis dua dari arah yang berlawanan dengan penjumlahan nilai tempat: yang di sana ditambahkan, di sini dipisahkan satu per satu. Pembaginya selalu dua, betapapun besar bilangannya
- hasil bagi
- Apa yang tersisa setelah pembagian, tanpa sisanya, yaitu bilangan yang dibagi lagi pada putaran berikutnya. Hasil baginya menyusut lebih dari separuh setiap putaran, dan justru karena itu tangganya pendek — masukan terbesar yang diterima pun hanya memerlukan sekitar lima puluh putaran
- sisa
- Digit jawaban untuk putaran itu, dan nilainya hanya bisa 0 atau 1 karena pembaginya dua. Sisa paling kanan pada jawaban datang dari putaran pertama, jadi kolom sisa harus dibaca dari bawah ke atas; membaca dari atas ke bawah adalah kekeliruan yang paling sering terjadi pada konversi ini
- ⇒ 10001
- Jawabannya, yaitu sisa-sisa tadi setelah dibaca dari bawah ke atas. Digit paling kiri pada jawaban berasal dari putaran terakhir, ketika hasil baginya sudah mencapai nol
- 16 + 1
- Jawaban yang sama, ditulis sebagai penjumlahan nilai tempat. Bentuk ini bukan hiasan: inilah cara mencocokkan hasilnya dengan arah konversi yang sebaliknya, karena nilai tempat yang dijumlahkan di sini harus sama dengan nilai tempat yang dijumlahkan ketika biner itu dibaca kembali sebagai desimal
- 53 bit
- Seberapa lebar masukan yang bisa dijawab dengan tepat, yaitu sampai dua pangkat lima puluh tiga dikurangi satu. Di atas lebar itu sebuah bilangan mesin berhenti bisa membedakan bilangan bulat yang bersebelahan, sehingga jawabannya akan tampak masuk akal padahal sudah tidak tepat
Konversi ini dipakai untuk menuliskan sebuah bilangan dalam bentuk yang bisa dibaca mesin, dan itu muncul di tempat yang tidak terduga banyaknya. Bitmask dan flag disiapkan dalam desimal lalu harus disimpan dalam biner; topeng izin berkas, opsi konfigurasi, dan nilai yang dikirim ke sebuah register semuanya bermula sebagai bilangan biasa. Arah ini juga merupakan pemeriksaan untuk konversi yang sebaliknya: kalau sebuah bacaan biner sudah diterjemahkan menjadi desimal, mengubahnya kembali adalah cara memastikan tidak ada digit yang terlewat, dan karena hasilnya ditampilkan sebagai penjumlahan nilai tempat, kecocokannya bisa diperiksa lebih dari sekadar membandingkan dua angka. Pelajar yang mengerjakan soal basis bilangan memakai halaman ini untuk hal yang berbeda lagi, yaitu melihat mengapa pembagian berulang menghasilkan digit dari kanan ke kiri — sesuatu yang sulit dijelaskan oleh jawaban akhir saja, tetapi menjadi jelas begitu setiap putaran dituliskan. Orang yang sedang menyiapkan materi, menerjemahkan dokumentasi, atau memeriksa keluaran sebuah program memakai jalur yang sama, karena menuliskan bilangan desimal dalam biner adalah langkah pertama dari hampir semua pekerjaan semacam itu.
Contoh hitungan
Menuliskan 17 dalam biner
- 17 dibagi 2 adalah 8 dengan sisa 1
- 8 dibagi 2 adalah 4 dengan sisa 0
- 4 dibagi 2 adalah 2 dengan sisa 0
- 2 dibagi 2 adalah 1 dengan sisa 0
- 1 dibagi 2 adalah 0 dengan sisa 1, dan hasil baginya sudah nol sehingga berhenti
- Baca kolom sisanya dari bawah ke atas: 1; 0; 0; 0; 1, yaitu 10001
Contoh pembuka halaman ini, dan contoh yang paling berguna untuk dikerjakan dengan tangan: lima putaran, dan hasil baginya berhenti tepat ketika mencapai nol. Perhatikan bahwa putaran pertama menghasilkan digit yang paling kanan, bukan yang paling kiri — itulah sebabnya sisa-sisanya dibaca dari bawah ke atas. Jawaban yang sama juga ditampilkan sebagai penjumlahan nilai tempat, 16 + 1, dan bentuk itulah yang bisa Anda cocokkan langsung dengan halaman yang mengubah biner kembali menjadi desimal.
Menuliskan satu byte penuh, 255
- Bagilah 255 dengan 2 berulang kali; setiap putaran menyisakan 1 karena hasil baginya selalu ganjil
- Putaran-putarannya berjalan 255, 127, 63, 31, 15, 7, 3, dan 1 sebelum akhirnya mencapai nol
- Kedelapan sisanya bernilai 1, jadi jawabannya delapan angka satu: 11111111
- Penjumlahan nilai tempatnya memuat setiap pangkat dua dari 128 sampai 1
Ini bilangan terbesar yang muat dalam satu byte, dan sekaligus contoh yang mudah diingat: delapan bit yang semuanya menyala. Perhatikan pola pada hasil baginya — setiap putaran menghasilkan bilangan ganjil, sehingga setiap putaran menyisakan 1. Kedelapan nilai tempat itu berjumlah tepat 255, dan selisih satu itu disengaja: hitungan biner dimulai dari nol, jadi delapan bit menjangkau 256 nilai yang berbeda, dari nol sampai 255.
Pangkat dua, 16
- 16 dibagi 2 adalah 8 dengan sisa 0
- 8 dibagi 2 adalah 4 dengan sisa 0
- 4 dibagi 2 adalah 2 dengan sisa 0
- 2 dibagi 2 adalah 1 dengan sisa 0
- 1 dibagi 2 adalah 0 dengan sisa 1, lalu berhenti
- Baca dari bawah ke atas: 1; 0; 0; 0; 0, yaitu 10000
Pangkat dua adalah bentuk yang paling mudah dikenali dalam biner: nilainya selalu satu diikuti angka nol, dan banyaknya nol sama dengan pangkatnya. Karena itu penjumlahan nilai tempatnya hanya memuat satu suku, 16, tanpa suku lain — sebuah bilangan yang hanya memerlukan satu nilai tempat memang hanya punya satu angka satu. Perhatikan juga bahwa jawabannya lima digit sementara hasil baginya mencapai nol pada putaran kelima, jadi panjang jawaban selalu sama dengan banyaknya putaran yang dijalankan.
Angka nol di depan tidak mengubah nilainya
- Angka nol di depan tidak menambah nilai apa pun, jadi bilangannya tetap 17
- Putaran pembagiannya persis sama dengan contoh pertama
- Jawabannya juga sama, yaitu 10001
Halaman ini menerima angka nol di depan pada masukan desimal dan membuangnya sebelum menghitung, karena menuliskan 00017 dan 17 adalah menuliskan bilangan yang sama — angka nol di depan tidak pernah menambah nilai. Yang perlu diingat adalah kebalikannya: angka nol di depan pada jawabannya juga tidak ditulis, karena nol di depan pada biner hanya berguna kalau lebarnya sedang dinyatakan, dan di sini yang dinyatakan adalah nilainya. Kalau Anda memang perlu jawaban selebar satu byte, lebar itulah yang Anda pilih, bukan konversinya.
Batasan
Halaman ini hanya mengubah bilangan desimal yang bulat. Tidak ada tanda desimal, jadi bilangan yang punya bagian pecahan tidak bisa diubah di sini — konversi pecahan menuntut aturan tersendiri, dan aturan itu tidak ditawarkan. Pemisah ribuan juga tidak diterima, jadi tulis bilangannya sebagai rangkaian angka tanpa pemisah apa pun. Masukannya dibatasi pada bilangan bulat sampai dua pangkat lima puluh tiga dikurangi satu; di atas lebar itu sebuah bilangan mesin berhenti bisa membedakan bilangan bulat yang bersebelahan, sehingga jawabannya akan tampak masuk akal padahal sudah tidak tepat, dan masukan sebesar itu ditolak dengan pesan alih-alih dijawab secara hampiran. Bilangan negatif tidak ditangani halaman ini, dan angka nol di depan boleh ditulis sebanyak yang Anda suka karena tidak mengubah nilainya. Halaman ini mengubah desimal menjadi biner saja; arah sebaliknya dan bentuk heksadesimalnya punya halaman sendiri.
Pertanyaan yang sering diajukan
- Bagaimana cara mengubah desimal ke biner dengan tangan?
- Bagi bilangan itu dengan dua, catat sisanya di sebelahnya, lalu bagi lagi hasil baginya dengan dua dan catat sisanya lagi. Ulangi sampai hasil baginya mencapai nol. Sisa-sisa yang terkumpul itu adalah digit biner dari jawabannya, tetapi harus dibaca dari bawah ke atas — sisa yang pertama kali Anda catat adalah digit yang paling kanan. Untuk 17 hasilnya 1; 0; 0; 0; 1 dibaca dari bawah, yaitu 10001. Tidak ada langkah lain, dan kesalahan yang paling sering terjadi adalah membaca kolom sisanya dari atas ke bawah.
- Mengapa sisanya harus dibaca dari bawah ke atas?
- Karena setiap putaran menemukan digit dengan bobot yang berbeda. Putaran pertama memisahkan tempat satuan — apakah bilangan itu ganjil — sehingga sisa pertamalah yang paling kanan. Putaran kedua memisahkan tempat duaan, putaran ketiga tempat empatan, dan seterusnya ke kiri. Jadi urutan putarannya berjalan dari kanan ke kiri melalui jawabannya, sementara kolom yang tertulis dari atas ke bawah justru terbalik dari urutan yang Anda perlukan. Jawabannya sendiri ditulis dari kiri ke kanan seperti bilangan biasa, dan itulah sebabnya pembacaannya harus dibalik.
- Bisakah saya mengubah bilangan desimal yang punya bagian pecahan?
- Belum. Halaman ini mengubah bilangan bulat saja, jadi tanda desimal tidak diterima. Mengubah pecahan sebenarnya mungkin, tetapi caranya berbeda: bagian bulatnya dibagi dua berulang kali seperti biasa, sementara bagian pecahannya dikali dua berulang kali dan digitnya diambil dari hasil perkaliannya. Kedua bagian itu lalu disatukan dengan sebuah titik biner di antaranya. Karena halaman ini tidak menawarkan titik biner maupun aturan penggabungan itu, masukan yang memuat tanda desimal ditolak alih-alih ditafsirkan.
- Berapa bilangan desimal terbesar yang bisa saya ubah di sini?
- Bilangan bulat sampai dua pangkat lima puluh tiga dikurangi satu. 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, jadi jawabannya akan tampak masuk akal padahal sudah tidak tepat. Karena itu masukan yang terlalu besar ditolak dengan pesan. Dalam biner, batas itu adalah lima puluh tiga angka satu, sehingga jawaban terpanjang yang akan Anda lihat di sini punya lima puluh tiga digit.
- Mengapa halaman ini juga menampilkan penjumlahan nilai tempat?
- Supaya jawabannya bisa dicocokkan, bukan sekadar dipercaya. Penjumlahan nilai tempat adalah bentuk yang sama dengan yang dipakai halaman konversi arah sebaliknya, jadi kedua arah itu bisa dibandingkan langsung: nilai tempat yang dijumlahkan di sini harus sama dengan nilai tempat yang dijumlahkan ketika biner itu dibaca kembali sebagai desimal. Tanpa bentuk itu, kekeliruan berupa satu digit yang terlewat hanya akan terlihat sebagai jawaban yang panjangnya berbeda, bukan sebagai selisih yang bisa ditunjuk.
- Apakah ada cara yang lebih cepat daripada membagi berulang kali?
- Untuk bilangan yang kecil, menghafal nilai tempat lalu menguranginya berturut-turut lebih cepat: ambil nilai tempat terbesar yang masih muat, kurangi, lalu lanjutkan dengan sisa pengurangannya. Untuk 17, nilai tempat terbesar yang muat adalah 16, sisanya 1, dan 1 adalah nilai tempat terkecil — jadi jawabannya 10001. Cara itu dan pembagian berulang menghasilkan jawaban yang sama; yang berbeda hanya arah bekerjanya. Pembagian berulang tetap dipakai untuk bilangan yang besar karena tidak menuntut Anda menghafal daftar nilai tempatnya.
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 the halving method produces from the bottom up, catalogued as OEIS A000079 — OEIS Foundation Inc. (United States)