黑马程序员技术交流社区

标题: 正数的反码补码不是不变吗?为什么~6不是等于6呢 [打印本页]

作者: wrnlksblk    时间: 2015-7-18 16:42
标题: 正数的反码补码不是不变吗?为什么~6不是等于6呢
搞不动,晕

作者: wrnlksblk    时间: 2015-7-18 17:29
搞不动,晕搞不动,晕
作者: 白羽蘇芳    时间: 2015-7-18 18:03
正数取反 首位0变1了  不就变负数了么  怎么会不变呢   
要想知道那个取反的值,因为是个负数,你得再取反+1得出解啊
作者: 袁月明    时间: 2015-7-18 18:20
正数全部都一样,负数~ 二进制取反 1变0 , 0变1. 可以实现 进制转换 正负转换(负数==正数取反加1)
作者: 李文思    时间: 2015-7-18 20:06
本帖最后由 李文思 于 2015-7-18 20:10 编辑

-6的表现形式是6取反加1
-用八位二进制表示6是            0000-0110
-                    6取反是             1111-1001 -                        加1得到的是             1111-1010
所以用八位二进制表示-6是     1111-1010

你说这两个能相等吗?


作者: 官沛    时间: 2015-7-18 20:22
楼主,你可能是把“~”和反码搞混了,这两个概念不一样的
作者: 知行合意    时间: 2015-7-18 20:35
在计算机中所有的数据都是以补码的形式存在的,正数的最高位是0,负数的最高位是1。反码:正数的反码和原码相同,负数的反码和原码不同,规则是:除去符号位,其他数值为取反,0变1,1变0。补码:正数的补码和原码相同;,负数的补码和原码不同。规则是,反码+1.所以~6不等于6.
作者: e咕噜    时间: 2015-7-18 21:41

~是按位取反




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