Hãy xem xét các yếu tố được đưa ra dưới đây để viết một chương trình C để xoay các bit cho một số nhất định.
-
Xoay bit từ trái sang phải hoặc từ phải sang trái.
-
Khi xoay trái, các bit được chuyển từ trái sang phải.
-
Khi xoay phải, các bit được chuyển từ phải sang trái.
-
Lấy một số và cố gắng xoay trái hoặc phải dựa trên chương trình người dùng.
-
Người dùng phải nhập vòng quay số tại thời gian chạy cùng với một số.
Chương trình 1
Sau đây là chương trình C để áp dụng xoay trái cho một số nhất định.
#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;
} Đầu ra
Khi chương trình trên được thực thi, nó tạo ra kết quả sau -
Enter any number:12 Enter number of rotations: 2 After Left rotation the value is = 48
Chương trình 2
Dưới đây là chương trình C để áp dụng xoay phải cho một số nhất định.
#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;
} Đầu ra
Khi chương trình trên được thực thi, nó tạo ra kết quả sau -
Enter any number:18 Enter number of rotations: 2 After right rotation the value is = 4