新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 單片機(jī)C語(yǔ)言實(shí)現(xiàn)循環(huán)移位!

單片機(jī)C語(yǔ)言實(shí)現(xiàn)循環(huán)移位!

作者: 時(shí)間:2016-11-22 來(lái)源:網(wǎng)絡(luò) 收藏
大家知道,大家用MCU寫(xiě)程序的時(shí)候,只有移位的語(yǔ)句,沒(méi)有循環(huán)移位的語(yǔ)句。那么如何實(shí)現(xiàn)循環(huán)移位呢,詳見(jiàn)下述:


本文引用地址:http://m.butianyuan.cn/article/201611/319872.htm

循環(huán)移位區(qū)別于一般移位的是移位時(shí)沒(méi)有數(shù)位的丟失。循環(huán)左移時(shí),用從左邊移出的位填充字的右端,而循環(huán)右移時(shí),用從右邊移出的位填充字的左側(cè)。這種情況在系統(tǒng)程序中時(shí)有使用,在一些控制程序中用得也不少?! ≡O(shè)有數(shù)據(jù)說(shuō)明:


a=01111011,循環(huán)左移2位 正確結(jié)果: 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)


總長(zhǎng)度N(8 16 32)


循環(huán)左移n: (a>>(N-n))|(a>>n)


循環(huán)右移n: (a<<(N-n))|(a>>n)


C語(yǔ)言的位運(yùn)算功能是其區(qū)別于其他大多數(shù)高級(jí)程序設(shè)計(jì)語(yǔ)言的特色之一,用它可以方便實(shí)現(xiàn)一些特殊功能,靈活掌握是用C程序編寫(xiě)系統(tǒng)程序的基礎(chǔ)。



評(píng)論


技術(shù)專區(qū)

關(guān)閉