একটি প্রদত্ত সংখ্যার জন্য বিটগুলি ঘোরানোর জন্য একটি সি প্রোগ্রাম লিখতে নীচের বিষয়গুলি বিবেচনা করুন৷
-
বাম থেকে ডানে বা ডান থেকে বামে বিট ঘোরানো।
-
বাম ঘূর্ণনে, বিটগুলি বাম থেকে ডানে স্থানান্তরিত হয়।
-
ডান ঘূর্ণনে, বিটগুলি ডান থেকে বামে স্থানান্তরিত হয়।
-
একটি সংখ্যা নিন এবং ব্যবহারকারী প্রোগ্রামের উপর ভিত্তি করে বাম বা ডানে ঘোরানোর চেষ্টা করুন।
-
ব্যবহারকারীকে একটি সংখ্যার সাথে রান টাইমে নম্বর ঘূর্ণন লিখতে হবে।
প্রোগ্রাম 1
বাম ঘূর্ণন প্রয়োগ করার জন্য C প্রোগ্রামটি নিচে দেওয়া হল একটি প্রদত্ত নম্বরের জন্য৷
৷#include<stdio.h>
#include<stdlib.h>
int main(){
int number, rotate, Msb, size;
printf("Enter any number:");
scanf("%d",&number);
printf("Enter number of rotations:\n");
scanf("%d",&rotate);
size = sizeof(int) * 8;
rotate %= size;
while(rotate--){
Msb = (number >> size) & 1;
number = (number << 1) | Msb;
}
printf("After Left rotation the value is = %d\n",number);
return 0;
} আউটপুট
যখন উপরের প্রোগ্রামটি কার্যকর করা হয়, তখন এটি নিম্নলিখিত ফলাফল তৈরি করে -
Enter any number:12 Enter number of rotations: 2 After Left rotation the value is = 48
প্রোগ্রাম 2
ডান ঘূর্ণন প্রয়োগ করার জন্য C প্রোগ্রামটি নীচে দেওয়া হল একটি প্রদত্ত নম্বরের জন্য৷
৷#include<stdio.h>
#include<stdlib.h>
int main(){
int number,rotate, Lsb, size;
printf("Enter any number:");
scanf("%d",&number);
printf("Enter number of rotations:\n");
scanf("%d",&rotate);
size = sizeof(int) * 8;
rotate %= size;
while(rotate--){
Lsb = number & 1;
number = (number >> 1) &(~(1<<size));
number=number|(Lsb<<size);
}
printf("After right rotation the value is = %d\n",number);
return 0;
} আউটপুট
যখন উপরের প্রোগ্রামটি কার্যকর করা হয়, তখন এটি নিম্নলিখিত ফলাফল তৈরি করে -
Enter any number:18 Enter number of rotations: 2 After right rotation the value is = 4