Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 算术移位_Objective C_Bit Shift - Fatal编程技术网

Objective c 算术移位

Objective c 算术移位,objective-c,bit-shift,Objective C,Bit Shift,逻辑右移和算术右移有什么区别?算术右移复制符号位。逻辑移位忽略符号位,最左边的位变为0 示例 8位右移使事情变得简单 例1 11100101原始位 11110010算术右移 011110010逻辑右移 例2 00011101原始位 00001110算术右移 00001110逻辑右移 请注意,当符号位为0时,这两种操作是相同的。算术右移复制符号位。逻辑移位忽略符号位,最左边的位变为0 示例 8位右移使事情变得简单 例1 11100101原始位 11110010算术右移 011110010逻辑右移

逻辑右移和算术右移有什么区别?

算术右移复制符号位。逻辑移位忽略符号位,最左边的位变为
0

示例

8位右移使事情变得简单

例1

11100101
原始位
11110010
算术右移
011110010
逻辑右移

例2

00011101
原始位
00001110
算术右移
00001110
逻辑右移


请注意,当符号位为
0

时,这两种操作是相同的。算术右移复制符号位。逻辑移位忽略符号位,最左边的位变为
0

示例

8位右移使事情变得简单

例1

11100101
原始位
11110010
算术右移
011110010
逻辑右移

例2

00011101
原始位
00001110
算术右移
00001110
逻辑右移


请注意,当符号位为
0

时,这两种操作是相同的。一(算术移位)保留符号(通过使用先前位置的副本填充空出的最左侧位位置);另一个不是(逻辑移位),而是始终用零填充。

一个(算术移位)保留符号(通过在空出的最左边位位置填充先前位置的副本);另一个没有(逻辑移位),而是始终用零填充。

LSR将位向右移位,并用0填充MSb。ASR将位向右移位,并用移位前的数据填充MSb,这保留了有符号数字的“除以2”机制。

LSR将位向右移位,并用0填充MSb。ASR将位向右移位,并用移位之前的内容填充MSb,这将保留“除以2”的值签名数字的机制。

您以前的问题没有一个满意的答案?您以前的问题没有一个满意的答案?可能的重复?您可以通过一些example@Shweta:已添加示例。如果你喜欢,请接受答案。算术右移的目的是什么。我还不明白它的用途算术移位,顾名思义,是用来做算术运算的。算术右移除以2,同时保持操作数的符号。对于无符号整数,需要使用逻辑移位。对于正有符号整数,逻辑或算术移位就可以了。对于负符号整数,你需要使用算术移位来得到正确的答案。我认为需要注意的一个主要事实是,当符号位为“0”时,这两种运算的效果是相同的。你能通过一些例子来解释吗example@Shweta:已添加示例。如果你喜欢,请接受答案。算术右移的目的是什么。我还不明白它的用途算术移位,顾名思义,是用来做算术运算的。算术右移除以2,同时保持操作数的符号。对于无符号整数,需要使用逻辑移位。对于正有符号整数,逻辑或算术移位就可以了。对于负符号整数,您需要使用算术移位来获得正确答案。我认为需要注意的一个主要事实是,当符号位为“0”时,这两个操作的效果相同