循環移位區別于一般移位的是移位時沒有數位的丟失。循環左移時,用從左邊移出的位填充字的右端,而循環右移時,用從右邊移出的位填充字的左側。這種情況在系統程序中時有使用,在一些控制程序中用得也不少。設有數據說明:
a=01111011,循環左移2位正確結果:11101101
過程:
b=a>>(8-2)用來得到正常左移丟失的位和循環移位后其正確位置b=00000001;
a=a<<2;左移a=11101100
a=a|b;a=11101101
如果不是用中間變量a=(a>>(8-2))|(a<<2)
總長度N(81632)
循環左移n:(a>>(N-n))|(a>>n)
循環右移n:(a<<(N-n))|(a>>n)