2010-10-22 95 views
1

邏輯右移和算術右移有什麼區別?算術移位

+0

您以前的任何問題都沒有得到滿意的答案? – Dusty 2010-10-22 04:48:10

+0

[邏輯,算術按位移]的可能重複(http://stackoverflow.com/questions/3703000/logical-arithmetical-bitwise-shifts) – 2010-10-22 04:50:15

回答

6

算術右移重複符號位。邏輯移位忽略符號位,最左邊的位變爲0

8位右移保持簡單。

實施例1

11100101原始比特
11110010算術右移
01110010邏輯右移

實施例2

00011101原始比特
00001110算術右移
00001110邏輯右移

請注意,當符號位爲0時,兩種操作都是相同的。

+0

你能解釋一些例子 – Shweta 2010-10-29 11:05:10

+0

@Shweta:添加的例子。如果你喜歡,請接受答案。 – 2010-10-29 13:17:52

+0

算術右移的目的是什麼。我仍然沒有得到它的目的 – Shweta 2010-11-08 12:29:38

1

其中一個(算術移位)保留了符號(通過填充空白的最左邊的比特位置以及之前存在的副本);另一個不是(邏輯轉換),而是總是用零填充。

3

LSR將位向右移位,並用0填充MSb。ASR將位向右移位並填充MSb,並在移位前填充MSb,從而保留有符號數的「除以2」機制。