📄 例12.2.txt
字号:
例12.2
循环移位。要求将a进行右循环移位。见图12.4。图12.4表示将a右循环移n位。即将a中原来左面(16-n)位右移n位,原来右端n位移到最左面n位。今假设用两个字节存放一个整数。为实现以上目的可以用以下步骤:
① 将a的右端n位先放到b中的高n位中。可以用下面语句实现:b=a<<(16-n);
② 将a右移n位,其左面高位n位补0。可以用下面语句实现:
c=a>>n;
③ 将c与b进行按位或运算。即
c=c|b;
程序如下:
main( )
{unsigned a,b,c;
int n;
scanf("a=%o,n=%d",&a,&n);
b=a<<(16-n);
c=a>>n;
c=c|b;
printf("%o\n%o",a,c);
}
运行情况如下:
a=157653,n=3
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -