黑马程序员技术交流社区
标题:
~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