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的位置,因此在左移過程中亮燈的數量不變,只是改變了亮燈的位置