黑马程序员技术交流社区

标题: 关于位运算小疑问 [打印本页]

作者: 由然自美    时间: 2013-12-28 20:25
标题: 关于位运算小疑问
本帖最后由 由然自美 于 2013-12-29 20:34 编辑

-10>>3
这个结果是多少呢?

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

     1111 0      -->左移三位
1111 1110      -->高位以1补充
1111 1101      -->再按位取反,符号位不变
1000 0010      -->就是-2啦
作者: 潘金锋    时间: 2013-12-28 20:56
潘金锋 发表于 2013-12-28 20:54
负整数在底层是以补码表示的,具体如下:
0000 1010     -->10
1111 0101     -->先按位取反

其实符号位是变的,最后的值是2,因为其底层是补码,那么该值即为负数,即-2。
作者: 由然自美    时间: 2013-12-28 21:03
1000 0010  第一位只是符号位是吧,不参加运算,是这样的吧




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