C語言單片機:左移與右移


b=a<<n 等價於b=a*2^n(左移后是左移前的2^n倍:變大)

b=a>>n 等價於b=a/2^n(右移前是右移后的2^n倍  變小)
說個容易記的
左移n位就是將數轉為二進制后 右面加n個零 左面的n位舍棄
右移n位就是將數轉為二進制后 左面加n個零 右面的n位舍棄

在單片機中控制LED燈假設低電平亮時,不管是左移還是右移,都是補0,所以亮的燈越來越多。

_cror_(P1,1):循環右移,被移出的放在最高位,來回循環,所以P1中0和1的位數不變,只是改變了0 1的位置,因此在右移過程中亮燈的數量不變,只是改變了亮燈的位置

_crol_(P1,1):循環左移,被移出的放在最低位,來回循環,所以P1中0和1的位數不變,只是改變了0 1的位置,因此在左移過程中亮燈的數量不變,只是改變了亮燈的位置


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM