循環移位(英文名稱cyclic shift;end around shift),一種計算機術語。
基本介紹
- 中文名:循環移位
- 外文名:cyclic shift;end around shift
- 專業:計算機
- 特點:定次循環
將循環右移寫成一個函式rightrot,每次循環右移一位,直到移完n位為止。
在main()函式中輸入a和n,然後調用以上函式。
----------------------------*/
#include
{
unsignedrightrot(unsigneda,intn);
unsignedinta,b;
intn;
printf("enteraandn:");
scanf("%x,%x",&a,&n);
printf("a=%x,n=%d\n",a,n);
b=rightrot(a,n);
printf("b=%x\n",b);
}
循環移位
在低級語言中有直接實現循環移位的指令,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。
----------------------------------*/