左移規則:高位丟棄,低位補0
右移規則:
右移分爲邏輯右移和算數右移,幾乎所有的編譯器都對有符號數使用算數右移,而對於無符號數必須用邏輯右移。
- 邏輯右移:高位補0,低位丟棄;
- 算數右移:高位補最高有效位的值,低位丟棄;
當移位的位數超過改變量類型的位數時,比如變量佔用的內存有w位,需要移動k位,當k>w時,我們需要移動的位數shift應該是:
shift = k % w;
還有一個要注意的是加法運算的優先級要比移位運算的優先級高:
如:
1<<2+3<<4;
左移規則:高位丟棄,低位補0
右移規則:
右移分爲邏輯右移和算數右移,幾乎所有的編譯器都對有符號數使用算數右移,而對於無符號數必須用邏輯右移。
- 邏輯右移:高位補0,低位丟棄;
- 算數右移:高位補最高有效位的值,低位丟棄;
當移位的位數超過改變量類型的位數時,比如變量佔用的內存有w位,需要移動k位,當k>w時,我們需要移動的位數shift應該是:
shift = k % w;
還有一個要注意的是加法運算的優先級要比移位運算的優先級高:
如:
1<<2+3<<4;