Untuk menambah nombor perduaan (binary), tambah lajur demi lajur dari kanan, tulis satu digit dan bawa apabila lajur mencapai 2 atau lebih. Jika nombor bawa keluar dari lajur paling kiri bagi nombor bersaiz tetap, hasil telah melimpah (overflow): ia memerlukan lebih bit daripada yang ada.
Pelajaran ini menggunakan nilai tempat perduaan yang sudah anda tahu dan berkait dengan kedalaman bit, yang menerangkan mengapa bilangan bit tetap ada had.
Apakah peraturan penambahan?
| Jumlah lajur | Tulis | Bawa |
|---|---|---|
| 0 | 0 | 0 |
| 1 | 1 | 0 |
| 2 (1 + 1) | 0 | 1 |
| 3 (1 + 1 + bawa 1) | 1 | 1 |
Setiap lajur menambah dua bit dan nombor bawa dari lajur di sebelah kanan. Nombor bawa ialah satu perkara yang paling mudah dilupakan, jadi tulis ia dalam baris kecil di atas nombor.
Contoh berlangkah tanpa limpahan
Tambah 01101011 dan 00111001 (8 bit).
Pertama, tukar supaya anda boleh menyemak kemudian: 01101011 = 64 + 32 + 8 + 2 + 1 = 107, dan 00111001 = 32 + 16 + 8 + 1 = 57. Jumlah dijangka: 164.
Sekarang tambah dari kanan (lajur 0 ialah yang paling kanan):
| Lajur | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|
| Bawa masuk | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 0 |
| Nombor pertama | 0 | 1 | 1 | 0 | 1 | 0 | 1 | 1 |
| Nombor kedua | 0 | 0 | 1 | 1 | 1 | 0 | 0 | 1 |
| Hasil | 1 | 0 | 1 | 0 | 0 | 1 | 0 | 0 |
Lajur 0: 1 + 1 = 10, tulis 0 bawa 1. Lajur 1: 1 + 0 + 1 = 10, tulis 0 bawa 1. Lajur 2: 0 + 0 + 1 = 1.
Lajur 3: 1 + 1 = 10, tulis 0 bawa 1. Lajur 4: 0 + 1 + 1 = 10, tulis 0 bawa 1. Lajur 5: 1 + 1 + 1 = 11, tulis 1 bawa 1.
Lajur 6: 1 + 0 + 1 = 10, tulis 0 bawa 1. Lajur 7: 0 + 0 + 1 = 1, tiada bawa keluar.
Hasilnya 10100100. Semak: 128 + 32 + 4 = 164. Ia sepadan, dan tiada nombor bawa keluar dari lajur 7, jadi tiada limpahan.
Contoh berlangkah dengan limpahan
Tambah 11001000 dan 01000110 (8 bit). Dalam denari ia ialah 200 + 70 = 270, melebihi 255, jadi limpahan dijangka.
| Lajur | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|
| Bawa masuk | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| Nombor pertama | 1 | 1 | 0 | 0 | 1 | 0 | 0 | 0 |
| Nombor kedua | 0 | 1 | 0 | 0 | 0 | 1 | 1 | 0 |
| Hasil | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 0 |
Lajur 6: 1 + 1 = 10, tulis 0 bawa 1. Lajur 7: 1 + 0 + 1 = 10, tulis 0 dan bawa 1 keluar dari lajur paling kiri.
Daftar 8 bit hanya menyimpan 00001110, iaitu 14. Jawapan sebenar memerlukan sembilan bit: 1 00001110 = 256 + 14 = 270. Maka pernyataan yang betul: hasil melimpah kerana 270 terlalu besar untuk 8 bit (maksimum 255), dan nilai tersimpan 14 adalah salah.
Kesilapan yang perlu diawasi
Kesilapan lazim ialah menulis digit tetapi terlupa membawa.
Soalan: Tambah 00000111 dan 00000001.
Kerja yang salah: lajur 0: 1 + 1 = 0, tetapi nombor bawa tidak ditulis, jadi lajur 1 dan 2 disalin ke bawah. Jawapan terbaca 00000110.
Jawapan itu ialah 6, sedangkan 7 + 1 mestilah 8. Pembetulannya ialah menulis baris bawa dahulu dan menandakan setiap nombor bawa apabila digunakan.
Lajur 0 memberi 0 bawa 1, lajur 1 memberi 1 + 0 + 1 = 0 bawa 1, lajur 2 memberi 1 + 0 + 1 = 0 bawa 1, dan lajur 3 memberi 0 + 0 + 1 = 1. Jawapan yang betul ialah 00001000. Jika nilai denari kelihatan salah apabila anda menukar semula, satu nombor bawa telah hilang.
Semak diri anda
1. Tambah 00011011 dan 00000101.
Lihat jawapan
27 + 5 = 32. Lajur demi lajur: nombor bawa bergerak dari lajur 0 ke lajur 4, dan hasilnya 00100000. Semak: 32.
2. Tambah 10000001 dan 10000001. Adakah ia melimpah?
Lihat jawapan
129 + 129 = 258, melebihi 255. Lajur 0: 1 + 1 = 0 bawa 1. Lajur 7: 1 + 1 = 0 bawa 1 keluar. Hasil tersimpan ialah 00000010 dengan nombor bawa keluar, jadi ya, ia melimpah. Nilai 2 yang disimpan salah kerana jawapan sebenar ialah 258.
3. Adakah 180 + 76 melimpah dalam 8 bit?
Lihat jawapan
180 + 76 = 256, iaitu satu lebih daripada maksimum 255. Ya, ia melimpah: 8 bit yang disimpan ialah 00000000.
Langkah seterusnya
Teruskan dengan menerangkan pengekodan aksara dan kemudian kedalaman bit, yang menerangkan had di sebalik limpahan. Latih semuanya dalam set latihan campuran.
Ramai pelajar boleh menambah dengan betul tetapi sukar menerangkan limpahan dengan kata-kata untuk mendapat markah. Guru boleh melatih ayat itu bersama anda dalam tuisyen Computer Science dalam talian secara satu dengan satu.