edubun
Bahasa Indonesia

Cara gerbang menjumlahkan bilangan

Satu gerbang XOR dan satu gerbang AND cukup untuk menjumlahkan dua bit. Rangkai empat full adder dan kamu bisa menjumlahkan dua bilangan apa pun dari 0 sampai 15.

Coba ini sebelum lanjut membaca. Jumlahkan 0101 dan 0011 di kertas, dalam biner, seperti kamu menjumlah dalam desimal, dan tulis setiap simpanan di atas kolom berikutnya. Kamu hanya perlu tiga fakta: 0 + 0 = 0, 0 + 1 = 1, dan 1 + 1 = 10, artinya tulis 0 dan simpan 1. Jika ada simpanan yang masuk, 1 + 1 + 1 = 11, jadi kamu menulis 1 dan menyimpan 1. Penyelesaiannya ada di paragraf berikut, jadi tutupi dulu.

Ini penyelesaiannya. Kolom paling kanan: 1 + 1 = 10, tulis 0, simpan 1. Berikutnya: 0 + 1 ditambah simpanan adalah 10 lagi, tulis 0, simpan 1. Berikutnya: 1 + 0 ditambah simpanan, 10, tulis 0, simpan 1. Paling kiri: 0 + 0 ditambah simpanan adalah 1. Jawabannya 1000, yaitu 8, dan 5 + 3 = 8. Tiga dari empat kolom menghasilkan simpanan. Kalkulator, gim, dan spreadsheet semuanya pada akhirnya melakukan persis hal ini. Di dalam prosesor, setiap kolom ditangani beberapa gerbang, dan adegan dimulai dengan penjumlahan yang sama. Lalu coba 9 + 8 di sana. Hasilnya butuh bit kelima.

Memuat

Seret untuk memutar. Gulir atau cubit untuk memperbesar.

A = 0101 (5) dan B = 0011 (3). Simpanan merambat dari kanan melewati tiga tempat dan jumlahnya 1000 (8). Ketuk bit mana pun pada A atau B, atau pilih bilangan dari menu. Coba 9 + 8: jawaban 17 butuh bit kelima, yaitu simpanan keluar di sebelah kiri.

Kolom paling kanan hanya butuh dua gerbang

Lihat kolom paling kanan saja. Bit jawabannya di sana, jumlah (sum), bernilai 1 jika tepat satu masukan bernilai 1. Itulah aturan XOR. Simpanannya (carry) bernilai 1 hanya jika kedua masukan 1. Itulah aturan AND. Jadi gerbang XOR dan gerbang AND berdampingan, yang diberi dua masukan yang sama, menjumlahkan dua bit. Rangkaian kecil ini disebut half adder (penjumlah setengah). Disebut "setengah" karena tidak punya cara untuk menerima simpanan dari kolom di kanannya.

Kolom lainnya harus menjumlahkan tiga bit

Di setiap kolom lainnya bertemu tiga bit: satu dari tiap bilangan dan simpanan dari kanan. Full adder (penjumlah penuh) menerima ketiganya. Jumlahnya adalah A XOR B XOR simpanan masuk, yang bernilai 1 jika banyaknya angka 1 di antara ketiganya ganjil. Simpanan keluarnya bernilai 1 jika setidaknya dua di antaranya 1. Dua half adder dan satu gerbang OR membentuk satu full adder. Jajarkan empat full adder, sambungkan setiap simpanan keluar ke simpanan masuk penjumlah di kirinya, dan kamu mendapat penjumlah 4 bit. Setiap simpanan harus merambat dari kanan ke kiri sebelum kolom terakhir tenang, jadi rancangan ini disebut ripple-carry adder (penjumlah simpanan merambat). Prosesor sungguhan menjumlahkan bilangan 64 bit dengan rangkaian yang lebih cerdik, yang menghitung simpanan lebih dulu, tetapi aturan di setiap kolom tetap sama.

ABSimpanan masukJumlahSimpanan keluar
00000
01010
11001
10101
11111

Apa yang terjadi jika jawabannya terlalu besar

Empat bit menampung 0 sampai 15. Jumlahkan 9 dan 8, dan jawaban sebenarnya, 17, adalah 10001 dalam biner, yaitu lima bit. Register yang hanya menyimpan empat bit menyimpan 0001, yaitu 1, dan simpanan yang tersisa di kiri adalah tanda peringatannya. Itulah overflow. 15 + 1 dalam empat bit menyisakan 0000. Prosesor memasang sebuah flag (penanda) saat itu terjadi agar program bisa menyadarinya. Pengurangan memakai penjumlah yang sama. Untuk menghitung A − B, prosesor membalik setiap bit B dan menambahkan 1, yang menghasilkan komplemen dua dari B, lalu menjumlahkannya dengan A dan membuang simpanan lebihnya. Untuk 5 − 3 dalam empat bit: 3 adalah 0011, dibalik menjadi 1100, ditambah 1 menjadi 1101. Lalu 0101 + 1101 = 10010, dan dengan menyimpan empat bit tersisa 0010, yaitu 2.

Perkalian adalah menggeser dan menjumlah

Perkalian berasal dari bagian yang sama. Dalam biner, mengalikan dengan 2 menggeser setiap bit satu tempat ke kiri, sama seperti mengalikan dengan 10 menambahkan satu nol dalam desimal: 0011 (3) menjadi 0110 (6). Untuk 5 × 3, perhatikan bahwa 3 adalah 2 + 1. Jadi 5 × 3 = 5 × 2 + 5 × 1 = 1010 + 0101 = 1111, yaitu 15. Rangkaian pengali menggeser dan menjumlah seperti ini, mengambil bit 1 dari bilangan kedua satu per satu.

Kesalahan umum
  • "1 + 1 = 2, jadi jawabannya muat dalam satu bit." Satu bit hanya menampung 0 atau 1. 1 + 1 = 10: bit jumlahnya 0 dan angka 1 disimpan. Buang simpanannya dan jawabannya menjadi 0, yang salah.
  • "Half adder bisa menjumlahkan bilangan sepanjang apa pun." Half adder tidak punya masukan untuk simpanan dari kanan, jadi hanya berfungsi di kolom paling kanan. Setiap kolom lainnya butuh full adder dengan tiga masukan. Penjumlah 4 bit bisa memakai satu half adder dan tiga full adder.
  • "Overflow membuat komputer berhenti dengan galat." Penjumlah hanya menyimpan bit yang muat. 9 + 8 dalam empat bit memberi 0001, jawaban salah yang tampak biasa saja. Prosesor memasang flag, dan program harus memeriksanya.
  • "Pengurangan butuh rangkaian pengurang sendiri." Balik bit-bit B, tambahkan 1, lalu jumlahkan hasilnya dengan A memakai penjumlah yang sama. 5 − 3: 0101 + 1101 = 10010, dan empat bit terendahnya, 0010, adalah 2.
Catatan untuk guruBerikan soal 0101 + 0011 sebelum kamu menyebut "penjumlah", dan minta siswa menulis simpanan di atas kolom. Sebagian besar tabel half adder dan full adder lalu bisa dibaca dari pekerjaan mereka sendiri. Langkah dari half adder ke full adder adalah tempat mereka tersesat. Tunjuk kolom kedua pada penjumlahan mereka dan tanyakan berapa bit yang mereka jumlahkan di sana: tiga. Simpanan merambat mudah diperagakan dengan empat orang berderet yang mengoper kartu simpanan ke kiri. Komplemen dua butuh satu contoh pelan dengan tangan; adegan tidak bisa mengurangkan, jadi kerjakan 5 − 3 di papan dan periksa bahwa 0010 adalah 2.
  1. Berapa 1 + 1 dalam biner?
  2. Dalam half adder, gerbang mana yang memberi bit jumlah?
    • XOR
    • AND
    • OR
    • NOT
  3. Dalam half adder, gerbang mana yang memberi simpanan?
    • AND
    • XOR
    • OR
    • NAND
  4. Berapa bit masukan yang diterima full adder?
  5. Sebuah full adder mendapat A = 1, B = 1, simpanan masuk = 1. Berapa bit jumlahnya?
  6. Jumlahkan 0110 dan 0011. Tulis empat bit.
  7. Register 4 bit menjumlahkan 9 + 8 dan hanya menyimpan empat bit. Bilangan apa yang disimpannya?
  8. Berapa komplemen dua 4 bit dari 0011?
  9. Berapa full adder yang dibutuhkan ripple-carry adder untuk bilangan 8 bit?
  10. Berapa jumlah terbesar yang bisa dihasilkan dua bilangan 4 bit?
Poin penting
  • Half adder: jumlah = A XOR B, simpanan = A AND B.
  • Full adder: tiga masukan; jumlahnya 1 jika banyaknya angka 1 ganjil, simpanannya 1 jika ada dua atau lebih.
  • Full adder yang dirangkai membentuk ripple-carry adder; simpanan bergerak dari kanan ke kiri.
  • Overflow: hasilnya butuh lebih banyak bit daripada yang dimiliki register. Pengurangan menjumlahkan komplemen dua.
Sumber kursus ini (9)
  • (checked 2026-10-17; reordered 2026-10-19: standards first, then official documentation, then the teaching model and calculations, history sources last)
  • Standards: NIST, "Prefixes for binary multiples" (physics.nist.gov/cuu/Units/binary.html: IEC approved kibi, mebi, gibi in December 1998; 1 B = 8 bit; 1 MiB = 1 048 576 B; 1 MB = 1 000 000 B; 1 GiB = 1 073 741 824 B; historical note: memory makers usually mean 2²⁰ bytes by megabyte, storage makers 1 000 000, and the "1.44 MB" diskette uses a megabyte of 1 024 000 bytes)
  • IETF RFC 20 "ASCII format for Network Interchange" (1969, 7-bit codes, A = 65, a = 97, 0 = 48)
  • IETF RFC 3629 "UTF-8, a transformation format of ISO 10646" (2003: 1 to 4 octets per character, ASCII unchanged, code points up to U+10FFFF, U+0800 to U+FFFF take three octets, "the first octet of a multi-octet sequence indicates the number of octets", example U+D55C U+AD6D U+C5B4 = ED 95 9C EA B5 AD EC 96 B4)
  • Official documentation: MDN Web Docs, "<color>" (hexadecimal colour notation #RRGGBB)
  • Intel, "Intel Chips" timeline poster (2012: Intel 4004 of 1971 with 2,300 transistors; 2nd generation Core 2010 with 1.16 billion)
  • Claude E. Shannon, "A Symbolic Analysis of Relay and Switching Circuits", Transactions of the AIEE vol. 57 (1938)
  • abstract of his MIT master's thesis. Computer History Museum, The Silicon Engine, "1947: Invention of the Point-Contact Transistor" (Bardeen and Brattain, December 1947, germanium)
  • John von Neumann, "First Draft of a Report on the EDVAC" (30 June 1945, Moore School, reprinted in IEEE Annals of the History of Computing 15:4, 1993).

Diperiksa: 2026-10-17