黑马程序员技术交流社区

标题: ~6 [打印本页]

作者: 张先庆    时间: 2013-7-17 21:40
标题: ~6
本帖最后由 杨兴庭 于 2013-7-18 21:17 编辑

~6的结果怎么得来的,具体到每一步?
作者: xscn    时间: 2013-7-18 00:16
本帖最后由 xscn 于 2013-7-18 00:26 编辑

负数是以补码的形式存2进制的,就是将其正数部分取反后+1。逆推回去,由负数(2进制首位是1)减去1,然后再取反,就得到了负数的正数部分。

                 6=0000-0000-0000-0110
对6取反 ~6 =1111-1111-1111-1001
然后减去1 =  1111-1111-1111-1000
然后再取反 = 0000-0000-0000-0111 这就是负数结果的正数部分
负数结果的正数部分是7,所以~6=-7
我把位数对齐了你看一下




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