黑马程序员技术交流社区

标题: 关于负数位移的问题 [打印本页]

作者: java陈辉    时间: 2013-12-28 23:37
标题: 关于负数位移的问题
本帖最后由 java陈辉 于 2014-1-10 23:07 编辑

-10>>3的结果怎么会是-2?这结果是怎么算出来的?求详细的解题过程。

作者: 由然自美    时间: 2013-12-28 23:38
负整数在底层是以补码表示的,具体如下:
0000 1010     -->10
1111 0101     -->先按位取反
1111 0110      -->再加1 即为-10的底层表示

     1111 0      -->左移三位
1111 1110      -->高位以1补充
1111 1101      -->再按位取反,符号位不变
1000 0010      -->就是-2
作者: 柏涛    时间: 2013-12-29 12:49
-10的二进制为1111 0110
左移三位11110110<<3 = 1111 0
高位补一   1111 1110
取反         1000 0010 也就是2了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2