为什么右移有两种选择——附加符号位(算术右移)或附加 0(逻辑右移),为什么实现要选择哪个?
最佳答案
不同之处在于允许处理有符号(二进制补码)和无符号整数。
当右移一个有符号(二进制补码)整数时 最高有效位是符号; 0 表示正数或零,1 表示 消极的。为了保留右移的标志,必须 复制现有的高位,或者附加符号 更喜欢。
右移无符号整数时,为了保留 正确的幅度必须在左边附加零,不管 现有的高位。
关于c - 为什么右移有两个选项? (算术/逻辑),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16976843/