當前位置:編程學習大全網 - 遊戲軟體 - “移位運算符在移位操作中,無論左移還是右移,所移出的空位壹律補0”這句話是否正確?

“移位運算符在移位操作中,無論左移還是右移,所移出的空位壹律補0”這句話是否正確?

不完全正確。

1、移位操作在程序設計中,移位操作運算符的壹種。

2、在c++中,移位運算符有雙目移位運算符:<<(左移)和>>(右移)。移位運算符組成的表達式也屬於算術表達式,其值為算術值。

3、首先要明白壹點,這裏面所有的操作都是針對存儲在計算機中中二進制的操作,那麽就要知道,正數在計算機中是用二進制表示的,負數在計算機中使用補碼表示的。

左移位:<<,有符號的移位操作;

左移操作時將運算數的二進制碼整體左移指定位數,左移之後的空位用0補充;

右移位:>>,有符號的移位操作;

右移操作是將運算數的二進制碼整體右移指定位數,右移之後的空位用符號位補充,如果是正數用0補充,負數用1補充。

無符號的移位只有右移:>>>

右移之後的空位全部補0。

4、妳可以用壹個立即值(從 0 到 31)指定移位數量,或用包含在 0 和 31 之間的壹個值的寄存器指定移位數量。

邏輯或算術左移(LSL)

MOV R1, #12

MOV R0, R1, LSL#2

R0 是 48,這些指令形成的總和是R0 = #12, LSL#2 等同於 BASIC 的 R0 = 12 << 2

  • 上一篇:有哪些簡單又健康的晚餐食譜推薦?
  • 下一篇:新火燒紅蓮寺中被殺死的女的是誰
  • copyright 2024編程學習大全網