কম্পিউটার টিউটোরিয়াল

সি প্রোগ্রাম দিয়ে বাইনারি নম্বারের টু'স কমপ্লিমেন্ট (Two's Complement) বের করা

টু'স কমপ্লিমেন্ট (Two's Complement) কী?

বাইনারি সংখ্যার টু'স কমপ্লিমেন্ট বের করার দুটি পদ্ধতি:

  1. পদ্ধতি ১: ওন্স কমপ্লিমেন্ট (বিট ফ্লিপ) করে তারপর ১ যোগ করুন।
  2. পদ্ধতি ২: LSB (লೀست সিগনিফিক্যান্ট বিট) থেকে প্রথম '১' পর্যন্ত সব বিট অপরিবর্তিত রাখুন, বাকিগুলো ফ্লিপ করুন।

লজিক (পদ্ধতি ১: ওন্স কমপ্লিমেন্ট + ১)

// Ones complement
for (i = 0; i < SIZE; i++) {
    if (num[i] == '0') one[i] = '1';
    else one[i] = '0';
}

// Twos complement: one[] + 1
carry = 1;
for (i = SIZE-1; i >= 0; i--) {
    if (one[i] == '1' && carry == 1) two[i] = '0';
    else if (one[i] == '0' && carry == 1) { two[i] = '1'; carry = 0; }
    else two[i] = one[i];
}

সি প্রোগ্রাম (৮-বিট বাইনারি ইনপুট)

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define SIZE 8

int main() {
    char num[SIZE+1], one[SIZE+1], two[SIZE+1];
    int i, carry = 1;

    printf("Enter %d-bit binary number: ", SIZE);
    scanf("%s", num);

    // Validate input length
    if (strlen(num) != SIZE) {
        printf("Error: Enter exactly %d bits\n", SIZE);
        return 1;
    }

    // Ones complement
    for (i = 0; i < SIZE; i++) {
        if (num[i] == '0') one[i] = '1';
        else if (num[i] == '1') one[i] = '0';
        else { printf("Invalid binary digit\n"); return 1; }
    }
    one[SIZE] = '\0';
    printf("One's complement: %s\n", one);

    // Two's complement
    for (i = SIZE-1; i >= 0; i--) {
        if (one[i] == '1' && carry == 1) two[i] = '0';
        else if (one[i] == '0' && carry == 1) { two[i] = '1'; carry = 0; }
        else two[i] = one[i];
    }
    two[SIZE] = '\0';
    printf("Two's complement: %s\n", two);

    return 0;
}

আউটপুট

Enter 8-bit binary number: 1000010
One's complement: 0111101
Two's complement: 0111110

নোট

  • ইনপুট অবশ্যই বাইনারি স্ট্রিং (শুধু ০ এবং ১) হতে হবে।
  • সাইনড ইন্টিজার রিপ্রেজেন্টেশনে টু'স কমপ্লিমেন্ট স্ট্যান্ডার্ড।
  • নেগেটিভ নম্বর রিপ্রেজেন্ট করতে টু'স কমপ্লিমেন্ট ব্যবহার করা হয়।
  1. C++ প্রোগ্রাম: দুটি স্ট্রিংয়ের অনকমন ক্যারেক্টার বের করা

  2. C++ প্রোগ্রাম: একটি সংখ্যা ২-এর পাওয়ার কিনা তা চেক করা

  3. দেওয়া সংখ্যাটি ফিবোনাচি কিনা চেক করার জাভা প্রোগ্রাম

  4. Python প্রোগ্রাম: دوটি প্রদত্ত তারিখের মাঝপথে দিনের সংখ্যা বের করা