Penjumlahan biner
Penjumlahan satu bit
Penjumlahan bilangan biner memiliki aturan yang kurang lebih sama dengan bilangan desimal.
Dalam desimal, kita memulai dari penjumlahan satu digit terlebih dahulu: 0+0 = 0, 0+1 = 1, ..., 2+3 = 5, dan seterusnya.
Karena bilangan biner hanya memiliki dua simbol, maka penjumlahan bitnya hanya memiliki empat kemungkinan: 0+0, 0+1, 1+0, dan 1+1. Karena bilangan biner tidak memiliki simbol 2, maka 1+1 dalam bilangan biner ditulis sebagai 10.
| Biner | Padanan Desimal |
|---|---|
| 0 + 0 = 0 | 0 + 0 = 0 |
| 0 + 1 = 1 | 0 + 1 = 1 |
| 1 + 0 = 1 | 1 + 0 = 1 |
| 1 + 1 = 10 | 1 + 1 = 2 |
Jadi seperti inilah tabel resmi penjumlahan bilangan biner 1 bit.
| x | y | x+y |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 10 |
Atau dalam bentuk penjumlahan baris-kolom, ditulis seperti ini:
| + | 0 | 1 |
|---|---|---|
| 0 | 0 | 1 |
| 1 | 1 | 10 |
Penjumlahan banyak bit
Mari kita ingat kembali penjumlahan dalam desimal. Untuk menjumlahkan 23 + 49, biasanya anak SD akan diajarkan untuk menjumlahkan per digit dari kanan.
| 1 | |||
| 2 | 3 | ||
| 4 | 9 | + | |
| 7 | 2 |
Algoritma penjumlahan dalam bilangan biner juga sama persis. Hanya kali ini angka yang digunakan hanyalah 0 dan 1, kemudian 1+1=10.
| 1 | 1 | ||||
| 1 | 1 | 0 | 1 | ||
| 1 | 1 | 0 | + | ||
| 1 | 0 | 0 | 1 | 1 |
Penjumlahan lebih dari satu digit dapat dilakukan dengan menjumlahkan masing-masing bit dari kanan ke kiri.
Jadi untuk menjumlahkan 0b 1 1011 + 0b 1110 yang kita lakukan adalah:
Persiapkan dulu tempatnya, ini persis seperti yang kita lakukan dalam penjumlahan desimal.
| 1 | 1 | 0 | 1 | 1 | ||
| 1 | 1 | 1 | 0 | + | ||
Jumlahkan terlebih dahulu kolom paling kanan.
| 1 | 1 | 0 | 1 | 1 | ||
| 1 | 1 | 1 | 0 | + | ||
| 1 |
Karena hasilnya masih 1 bit, maka kita dapat langsung pindah ke kiri.
| 1 | 1 | 0 | 1 | 1 | ||
| 1 | 1 | 1 | 0 | + | ||
| 10 | 1 |
Di kolom kedua ini, hasilnya ternyata lebih dari satu bit. Seperti pada penjumlahan desimal, kita memindahkan bit 1 lebihan ini ke atas kolom berikutnya. Ini dinamakan sebagai carry.
| 1 | ||||||
| 1 | 1 | 0 | 1 | 1 | ||
| 1 | 1 | 1 | 0 | + | ||
| 0 | 1 |
Berpindah ke kolom berikutnya, 1+0+1 = 1+1 = 10 lagi.
| 1 | ||||||
| 1 | 1 | 0 | 1 | 1 | ||
| 1 | 1 | 1 | 0 | + | ||
| 10 | 0 | 1 |
Karena lebih dari 1 bit, maka lebihannya diletakkan di atas kolom berikutnya.
| 1 | 1 | |||||
| 1 | 1 | 0 | 1 | 1 | ||
| 1 | 1 | 1 | 0 | + | ||
| 0 | 0 | 1 |
Kolom selanjutnya, kita menambahkan 1+1+1. 1+1 = 10, sehingga 1+1+1 = 10+1 = 11.
| 1 | 1 | |||||
| 1 | 1 | 0 | 1 | 1 | ||
| 1 | 1 | 1 | 0 | + | ||
| 11 | 0 | 0 | 1 |
Lagi-lagi lebih dari 1 bit, maka kita pindahkan lebihannya ke kolom berikutnya.
| 1 | 1 | 1 | ||||
| 1 | 1 | 0 | 1 | 1 | ||
| 1 | 1 | 1 | 0 | + | ||
| 1 | 0 | 0 | 1 |
Kolom berikutnya, kita tinggal menambahkan 1+1 = 10.
| 1 | 1 | 1 | ||||
| 1 | 1 | 0 | 1 | 1 | ||
| 1 | 1 | 1 | 0 | + | ||
| 10 | 1 | 0 | 0 | 1 |
Lanjutkan seperti sebelumnya, karena ada lebihan, pindahkan ke kolom berikutnya.
| 1 | 1 | 1 | 1 | |||
| 1 | 1 | 0 | 1 | 1 | ||
| 1 | 1 | 1 | 0 | + | ||
| 0 | 1 | 0 | 0 | 1 |
Dan kali ini kita tidak perlu menambahkan, sehingga sel paling bawah akan berisi 1.
| 1 | 1 | 1 | 1 | |||
| 1 | 1 | 0 | 1 | 1 | ||
| 1 | 1 | 1 | 0 | + | ||
| 1 | 0 | 1 | 0 | 0 | 1 |
Jadi kenampakan akhir proses penjumlahan kita seluruhnya adalah seperti ini:
| 1 | 1 | 1 | 1 | |||
| 1 | 1 | 0 | 1 | 1 | ||
| 1 | 1 | 1 | 0 | + | ||
| 1 | 0 | 1 | 0 | 0 | 1 |
Sebenarnya proses penjumlahan biner ini jauh lebih mudah daripada penjumlahan desimal, karena simbol yang digunakan dan penjumlahan digit dasarnya sangat sederhana. Yang membuatnya sulit adalah karena kita sudah terbiasa menjumlahkan menggunakan bilangan desimal.