计算机内,负数移位问题,

问题描述:

计算机内,负数移位问题,
-20>>3,数-20,向右移3位,怎么算?
结果是-3.
我在计算机李运行了,确实是-3.
1个回答 分类:数学 2014-11-02

问题解答:

我来补答
计算机内数都用二进制来表示,所以移位也要用二进制的.
-20的ASCII码为 1001 0100 移位的算法是:最高位的符号位不移动,右移最低位舍去.所以以上二进制码右移三位后为 1000 0010 十进制为-2.
楼主说错了吧,结果应为-2.
更正:右移分算术右移和逻辑右移.楼主所说应为算术右移,算术右移时,最低位舍去,高位补符号位.
该问题-20,二进制为1001 0100 ,在计算机中应用补码(按位取反并加1)表示.为:1110 1100,右移三位后为1111 1101,再还原为原码:1000 0011.即-3.
还有哪不懂的可以再问下.第一次给你说错了^^
 
 
展开全文阅读
剩余:2000