intermediate#binary-arithmetic#addition#subtraction#complement#carry#twos-complementUpdated: 2026-05-12

বাইনারি গাণিতিক (Binary Arithmetic)


ভূমিকা — Computer কখনো বিয়োগ করে না!

তুমি যখন Calculator-এ 10 - 7 = 3 লেখো, তখন ভাবো Computer বিয়োগ করছে।

কিন্তু আসলে Computer বিয়োগ করে না। সে শুধু যোগ করে

10 - 7 কে Computer করে 10 + (-7)। আর ঋণাত্মক সংখ্যা তৈরির জন্য ব্যবহার করে Complement পদ্ধতি।

মজার তথ্য: আলাদা subtraction circuit তৈরি করা ব্যয়বহুল ও জটিল। শুধু addition circuit দিয়ে complement ব্যবহার করলে বিয়োগও করা যায়। এটাই Hardware Design-এর একটি মার্জিত সমাধান।


Binary Arithmetic কেন দরকার?

Computer-এ সমস্ত Mathematical operation শেষ পর্যন্ত Binary-তে হয়। Addition, Subtraction, Multiplication, Division — সব।

এই অধ্যায়ে আমরা শিখবো:

  1. Binary Addition (যোগ)
  2. 1's Complement (বিট উল্টানো)
  3. 2's Complement (ঋণাত্মক সংখ্যার প্রকাশ)
  4. Binary Subtraction (2's Complement ব্যবহার করে)

চিত্রের মাধ্যমে বোঝো

Binary Addition Column:
  1 0 1 1     (11 Decimal)
+ 0 1 1 0   + (6 Decimal)
---------
  1 0 0 0 1   = 17 Decimal

Carry:   1 1 1 0

বাস্তব জীবনের সাথে মিল

উপমা: ঘড়ির 12-hour system। 11 টার পর 1 ঘণ্টা গেলে 12 → carry → আবার 12 (overflow)। Binary-তেও তাই — নির্দিষ্ট bit-এর বাইরে গেলে overflow হয়।


Module 1: Binary Addition — বাইনারি যোগ

যোগের নিয়মাবলি

0 + 0 = 0          (sum=0, carry=0)
0 + 1 = 1          (sum=1, carry=0)
1 + 0 = 1          (sum=1, carry=0)
1 + 1 = 10         (sum=0, carry=1)
1 + 1 + 1 = 11     (sum=1, carry=1)  ← তিনটি যোগ হলে

উদাহরণ ১: 1010 + 0110

    Carry:  1 1 0 0
    First:  1 0 1 0  (= 10 Decimal)
  + Second: 0 1 1 0  (=  6 Decimal)
  ---------
   Result: 1 0 0 0 0  (= 16 Decimal)

Step by step (ডান থেকে):
Position 0: 0+0 = 0, carry=0
Position 1: 1+1 = 10, sum=0, carry=1
Position 2: 0+1+carry(1) = 10, sum=0, carry=1
Position 3: 1+0+carry(1) = 10, sum=0, carry=1
Position 4: carry(1) → 1

ফলাফল: 10000₂ = 16₁₀ ✅

উদাহরণ ২: 11011 + 01101

    Carry:  1 1 0 1 0
    First:  1 1 0 1 1  (= 27)
  + Second: 0 1 1 0 1  (= 13)
  ---------
   Result: 1 0 1 0 0 0  (= 40)

যাচাই: 27+13 = 40 ✅

💡 Tip: যোগের সময় carry সবসময় পরের (বাম) ঘরে যায়।


Module 2: 1's Complement — এক এর পরিপূরক

📌 সংজ্ঞা

1's Complement হলো একটি Binary সংখ্যার প্রতিটি bit উল্টানো — প্রতিটি 0 → 1 এবং প্রতিটি 1 → 0।

সংখ্যা:        1 0 1 1 0 1 0 0
1's Complement: 0 1 0 0 1 0 1 1

হিসাব করার নিয়ম

প্রতিটি bit পরিবর্তন করো:

1010  →  0101
1100  →  0011
11001100  →  00110011

1's Complement দিয়ে বিয়োগ

পদ্ধতি: A - B = A + (1's complement of B)

যদি result-এ extra carry আসে, তাকে End-Around Carry বলে, এবং সেটা LSB-এ যোগ করতে হয়।

Decimal: 7 - 5 = 2

Binary: 0111 - 0101

ধাপ ১: 5 এর 1's complement = 0101 → 1010
ধাপ ২: 0111 + 1010 = 10001 (extra carry=1)
ধাপ ৩: End-around carry যোগ: 0001 + 1 = 0010

ফলাফল: 0010₂ = 2₁₀ ✅

⚠️ সতর্কতা: 1's Complement-এ দুটি শূন্য সমস্যা আছে: +0 (0000) এবং -0 (1111)। এই কারণে 2's Complement বেশি ব্যবহার হয়।


Module 3: 2's Complement — দুই এর পরিপূরক

📌 সংজ্ঞা

2's Complement = 1's Complement + 1

অথবা: ডান থেকে প্রথম 1 এবং তার ডানের সব 0 অপরিবর্তিত রাখো, বাকি সব bit উল্টাও।

পদ্ধতি ১: Flip then Add 1

সংখ্যা: 1010

ধাপ ১: 1's Complement → 0101
ধাপ ২: +1              → 0110

2's Complement of 1010 = 0110

পদ্ধতি ২: Shortcut (ডান থেকে)

সংখ্যা: 1 0 1 1 0 0

ডান থেকে প্রথম 1 খুঁজো: position 2 (value 1 0 0)
সেই 1 এবং তার ডানের সব 0 অপরিবর্তিত: ...1 0 0
বাকি সব উল্টাও: 0 1 0...

Original:       1  0  1  1  0  0
2's Complement: 0  1  0  1  0  0

n-bit 2's Complement-এর Range

n-bit signed integer:

  • সর্বোচ্চ ধনাত্মক: 2^(n-1) - 1
  • সর্বনিম্ন ঋণাত্মক: -2^(n-1)
4-bit:  -8 to +7  (MSB=1 হলে ঋণাত্মক)
8-bit:  -128 to +127
16-bit: -32768 to +32767

Signed Number Interpretation

8-bit 2's Complement-এ:

01111111 = +127  (MSB=0 → ধনাত্মক)
00000001 = +1
00000000 = 0
11111111 = -1    (MSB=1 → ঋণাত্মক, 2's complement নাও: 00000001 = 1, তাই -1)
10000000 = -128

Module 4: 2's Complement দিয়ে বিয়োগ

পদ্ধতি

A - B = A + (2's complement of B)

ফলাফল পড়ার নিয়ম:

  • যদি extra carry আসে → ধনাত্মক ফলাফল, carry বাদ দাও
  • যদি carry না আসে → ঋণাত্মক ফলাফল, result-এর 2's complement নাও

উদাহরণ ১: 1010 - 0110 (ধনাত্মক ফলাফল)

A = 1010  (= 10 Decimal)
B = 0110  (=  6 Decimal)

ধাপ ১: B এর 2's complement:
        0110 → 1's complement → 1001 → +1 → 1010

ধাপ ২: A + 2's complement of B:
        1010
      + 1010
      ------
       10100  ← Extra carry আছে!

ধাপ ৩: Extra carry বাদ দাও: 0100

ফলাফল: 0100₂ = 4₁₀

যাচাই: 10 - 6 = 4 ✅

উদাহরণ ২: 0110 - 1010 (ঋণাত্মক ফলাফল)

A = 0110  (= 6 Decimal)
B = 1010  (= 10 Decimal)

ধাপ ১: B এর 2's complement:
        1010 → 0101 → +1 → 0110

ধাপ ২: A + 2's complement of B:
        0110
      + 0110
      ------
        1100  ← Carry নেই!

ধাপ ৩: Result ঋণাত্মক, 2's complement নাও:
        1100 → 0011 → +1 → 0100
        তাই ফলাফল = -0100₂ = -4₁₀

যাচাই: 6 - 10 = -4 ✅

উদাহরণ ৩: পূর্ণ ধাপ দেখানো — 11010 - 01101

A = 11010  (= 26 Decimal)
B = 01101  (= 13 Decimal)

B এর 2's complement:
01101 → 10010 → +1 → 10011

যোগ:
  11010
+ 10011
-------
 101101  ← Carry আছে

Carry বাদ: 01101₂ = 13₁₀

যাচাই: 26 - 13 = 13 ✅

Module 5: Binary Multiplication — বাইনারি গুণ

গুণের নিয়মাবলি

0 × 0 = 0
0 × 1 = 0
1 × 0 = 0
1 × 1 = 1

Shift-and-Add পদ্ধতি

1011 × 101  (= 11 × 5 = 55)

    1011
  ×  101
  ------
    1011    ← 1011 × 1 (LSB=1)
   0000     ← 1011 × 0 (shifted left 1)
  1011      ← 1011 × 1 (shifted left 2)
  --------
  110111    = 55₁₀ ✅

Module 6: বাস্তব প্রয়োগ

  • 🖥️ CPU ALU: সমস্ত arithmetic operation করে (ADD, SUB instruction-এ 2's complement ব্যবহার)
  • 💾 Signed Integer Storage: C/C++ int, Java int — সব 2's complement-এ
  • 🎮 Game Physics: Negative velocity, position — 2's complement signed numbers
  • 🔌 Digital Signal Processing: Audio filters, image processing-এ Binary arithmetic

🧠 মূল শিক্ষা

মনে রাখো: Computer বিয়োগ করার জন্য আলাদা circuit ব্যবহার করে না। A - B = A + 2's complement of B — এই একটি সূত্রই যথেষ্ট। 2's Complement-এ MSB=1 মানে ঋণাত্মক সংখ্যা। n-bit-এ সর্বনিম্ন = -2^(n-1), সর্বোচ্চ = 2^(n-1)-1।


🔁 নিজে পরীক্ষা করো

প্রশ্ন ১: Binary Addition-এ 1+1 = কত?

উত্তর: 10 (sum=0, carry=1)


প্রশ্ন ২: 1010 এর 1's Complement কত?

উত্তর: 0101


প্রশ্ন ৩: 1010 এর 2's Complement কত?

উত্তর: 0110 (1's complement 0101 + 1 = 0110)


প্রশ্ন ৪: 4-bit 2's Complement-এ সর্বনিম্ন মান কত?

উত্তর: -8 (= -2³)


প্রশ্ন ৫: 2's Complement বিয়োগের ফলে extra carry না এলে ফলাফল কী ধরনের?

উত্তর: ঋণাত্মক — result-এর 2's complement নিতে হবে


📝 HSC পরীক্ষার প্রস্তুতি

পরীক্ষায় যা আসতে পারে

🎯 সবচেয়ে Common: "2's Complement পদ্ধতিতে Binary বিয়োগ করো" — ধাপে ধাপে দেখাতে হবে।

🎯 Complement calculation: "নিচের সংখ্যার 1's Complement এবং 2's Complement বের করো।"

🎯 Binary Addition: Column format-এ carry সহ দেখানো।

সাধারণ ভুলসমূহ

⚠️ ভুল ১: 2's Complement-এ 1 যোগ করতে ভুলে যাওয়া।

⚠️ ভুল ২: Extra carry এলে ignore না করে যোগ করার চেষ্টা।

⚠️ ভুল ৩: ঋণাত্মক ফলাফলের ক্ষেত্রে 2's complement না নিয়ে সরাসরি result লেখা।

⚠️ ভুল ৪: Binary Addition-এ 1+1+1=11 (sum=1, carry=1) না জানা।

মনে রাখার কৌশল

💡 Step মনে রাখো:

  1. Subtrahend (B)-এর 2's complement বের করো
  2. A + 2's complement(B) যোগ করো
  3. Carry আছে → ধনাত্মক, carry বাদ দাও
  4. Carry নেই → ঋণাত্মক, result-এর 2's complement নাও

✅ সারাংশ

Binary Addition:

  • 1+1 = 10 (carry), 1+1+1 = 11 (carry+1)
  • Column format-এ carry সহ লিখতে হয়

1's Complement:

  • প্রতিটি bit উল্টাও (0→1, 1→0)
  • বিয়োগে End-around carry ব্যবহার হয়

2's Complement:

  • 1's Complement + 1
  • Shortcut: ডান থেকে প্রথম 1 পর্যন্ত অপরিবর্তিত, বাকি উল্টাও
  • n-bit range: -2^(n-1) to +2^(n-1)-1

2's Complement Subtraction:

  • A - B = A + 2's complement(B)
  • Carry → ধনাত্মক (carry বাদ)
  • No carry → ঋণাত্মক (2's complement নাও)

🎯 অনুশীলন প্রশ্ন

  1. Addition:

    • 1101₂ + 0111₂ = ?
    • 11010₂ + 10110₂ = ?
  2. Complement:

    • 10110 এর 1's complement কত?
    • 10110 এর 2's complement কত?
  3. Subtraction (2's Complement পদ্ধতিতে):

    • 1011 - 0101 = ?
    • 0101 - 1010 = ?
  4. MCQ: 8-bit 2's Complement-এ সর্বোচ্চ ধনাত্মক মান কত?

    • (a) 128 (b) 127 (c) 255 (d) 256 উত্তর: (b) 127
  5. প্রমাণ: দেখাও যে Binary Subtraction 2's Complement দিয়ে করা যায়: 15 - 7 = 8।