單片機C語(yǔ)言實(shí)現循環(huán)移位!
循環(huán)移位區別于一般移位的是移位時(shí)沒(méi)有數位的丟失。循環(huán)左移時(shí),用從左邊移出的位填充字的右端,而循環(huán)右移時(shí),用從右邊移出的位填充字的左側。這種情況在系統程序中時(shí)有使用,在一些控制程序中用得也不少?! ≡O有數據說(shuō)明:
a=01111011,循環(huán)左移2位 正確結果: 11101101
過(guò)程:
b=a>>(8-2) 用來(lái)得到正常左移丟失的位和循環(huán)移位后其正確位置 b=00000001;
a=a<<2;左移 a=11101100
a=a|b; a=11101101
如果不是用中間變量 a=(a>>(8-2))|(a<<2)
總長(cháng)度N(8 16 32)
循環(huán)左移n: (a>>(N-n))|(a>>n)
循環(huán)右移n: (a<<(N-n))|(a>>n)
C語(yǔ)言的位運算功能是其區別于其他大多數高級程序設計語(yǔ)言的特色之一,用它可以方便實(shí)現一些特殊功能,靈活掌握是用C程序編寫(xiě)系統程序的基礎。
評論