C 程序为给定的数字旋转位!
考虑下面给出的因素来编写一个C程序来旋转给定数字的位。
从左到右或从右到左旋转位。
在左旋中,位从左向右移位。
在右旋中,位从右向左移动。
取一个数字并尝试根据用户程序向左或向右旋转。
用户必须在运行时输入数字旋转以及数字。
方案一
以下是对给定数字应用左旋转的C程序。
#include输出结果#include int main(){ int number, rotate, Msb, size; printf("输入任意数字:"); 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; }
执行上述程序时,会产生以下结果-
输入任意数字:12 Enter number of rotations: 2 After Left rotation the value is = 48
方案二
下面给出的是对给定数字应用右旋转的C程序。
#include#include int main(){ int number,rotate, Lsb, size; printf("输入任意数字:"); 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< 输出结果 执行上述程序时,会产生以下结果-
输入任意数字:18 Enter number of rotations: 2 After right rotation the value is = 4