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

C ভাষায় বিটওয়াইজ অপারেটর ব্যবহার করে সংখ্যা স্ব্যাপ করা


সমস্যা

C প্রোগ্রামিং ভাষায় বিটওয়াইজ অপারেটর ব্যবহার করে সংখ্যা কীভাবে স্ব্যাপ করবেন?

সমাধান

কম্পাইলার দেওয়া সংখ্যাগুলো স্ব্যাপ করার সময় প্রথমে ডেসিমাল নম্বরকে বাইনারি একুিভ্যালেন্টে কনভার্ট করে, তারপর বিটওয়াইজ XOR অপারেশন করে সংখ্যাগুলো এক মেমরি লোকেশন থেকে অন্যটিতে এক্সচেঞ্জ করে।

অ্যালগরিদম

START
Step 1: declare two variables a and b
Step 1: Enter two numbers from console
Step 2: swap two numbers by using BITWISE operator
         a = a ^ b
         b = a ^ b
         a = a ^ b
Step 3: Print a and b values
STOP

প্রোগ্রাম

#include<stdio.h>
int main() {
    int a, b;
    printf("enter the values for a and b:");
    scanf("%d%d", &a, &b);
    printf("value of a=%d and b=%d before swap\n", a, b);
    a = a ^ b;
    b = a ^ b;
    a = a ^ b;
    printf("value of a=%d and b=%d after swap", a, b);
    return 0;
}

আউটপুট

enter the values for a and b: 24 56
value of a=24 and b=56 before swap
value of a=56 and b=24 after swap
Explanation:
a=24 binary equivalent of 24 = 011000
b=56 binary equivalent of 56 = 111000
a = a^b = 100000
b = a^b = 100000 ^ 111000 = 011000
a = a^b = 100000 ^ 011000 = 111000
Now a=111000 decimal equivalent = 56
b=011000 decimal equivalent = 24

  1. C++-এ বড় সংখ্যা হ্যান্ডলিং (boost লাইব্রেরি)

  2. সি প্রোগ্রাম: কোনো অপারেটর ছাড়া দুটি সংখ্যার যোগফল বের করা

  3. C++ প্রোগ্রাম: কল বাই রেফারেন্স দিয়ে সাইক্লিক অর্ডারে নম্বর সওয়্যাপ

  4. C#-এ অস্থায়ী ভেরিয়েবল ছাড়া দুটি সংখ্যা সোয়াপ করা