نیمجمعکننده: جمع یکبیتی بدون نقلی ورودی
مسئله: دو بیت x و y را جمع کن؛ خروجیها: جمع S و نقلی C. جدول چهار سطری میگوید و . همین — دو گیت و تمام.
تمامجمعکننده: با نقلی ورودی
مسئلهٔ واقعیتر: سه بیت (x، y و نقلی ورودی z). جدول هشت سطری و سادهسازی (با کارنو) میدهد:
شهودش را نگه دار: جمع، XOR سهتایی است (فرد بودن تعداد یکها) و نقلی وقتی ۱ است که دستکم دو تا از سه ورودی ۱ باشند (رأی اکثریت!). این شهود را که بفهمی، فرمول را هم حفظی.
جمعکنندهٔ چندبیتی: زنجیر کردن
تمامجمعکنندهها را پشت سر هم بچین: نقلیِ هر مرحله به مرحلهٔ بعد میرود (ripple carry). برای تفریق هم همان مدار کافی است: با XORِ کنترلشده، بیتهای B را (وقتی حالت تفریق است) وارونه کن و نقلی ورودی مرحلهٔ اول را ۱ بگذار — یعنی همان «مکمل دو و جمع» فصل ۱، اینبار در سختافزار.
جمعکنندهٔ BCD و ضربکننده
- جمعکنندهٔ BCD: دو رقم BCD را مثل دودویی جمع میکند و اگر نتیجه از ۹ گذشت (یا نقلی آمد)، ۶ واحد اصلاح میکند. چرا ۶؟ چون BCD شش ترکیب (۱۰ تا ۱۵) را جا انداخته و باید از روی آنها پرید.
- ضربکنندهٔ دودویی: مثل ضرب دستی مدرسه است: بهازای هر بیتِ ضربکننده یک سطرِ حاصلضرب جزئی (ANDای) بساز و سطرها را با جمعکنندهها جمع کن. ضربکنندهٔ ۲×۲ فقط به چهار AND و دو نیمجمعکننده نیاز دارد.