循环移位
计算机术语
循环移位(英文名称cyclic shift;end around shift),一种计算机术语。
循环移位
/*----------------------------
将循环右移写成一个函数rightrot,每次循环右移一位,直到移完n位为止。
在main()函数中输入a和n,然后调用以上函数。
----------------------------*/
#include
unsignedrightrot(unsigneda,intn)
{
intrb;
while(n-->0)
{
rb=(a&1)>1;
a=a|rb;
}
return(a);
}
main()
{
unsignedrightrot(unsigneda,intn);
unsignedinta,b;
intn;
b=rightrot(a,n);
}
/*----------------------------------
循环移位
在低级语言中有直接实现循环移位的指令,C语言没有循环移位的运算符,但可以利用已有的位运算符实现循环移位。
所谓循环移位是指在移位时不丢失移位前原范围的位,而是将它们作为另一端的补入位。
例如循环右移n位,指各位右移n位,原来的低n位变成高n位,指各位右移n位,原来的低n位变成高n位,可以用以下步骤实现:
(1)使a中各位左移(16-n)位,使右端的n位放到b中的高n位中。其余各位补0,可用下面语句实现。
b=a>n;
(3)按位“或”具有组合两个数的某些位的作用,使b与c进行按位“或”运算,
即:c=c|b。
----------------------------------*/
/*------------------------------
#include
main()
{
unsigneda,b,c;
intn;
b=a>n;
c=c|b;
}
------------------------------*/
//【++程序设计】
参考资料
最新修订时间:2024-06-23 00:10
目录
概述
参考资料