A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© jing迪 高级黑马   /  2013-10-31 18:06  /  813 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

毕老师的视频讲解负数的进制  说负数的二进制最高位是1
比如6的二进制是0000-0110  那么负数应该是各个二进制位取反加1  也就是1111-1010  

但是 1111-1010 不是250吗?2+8+16+32+64+128=250??

怎么会是-6呢???很奇怪有人知道么

评分

参与人数 1技术分 +1 收起 理由
To + 1 毕老师有详细讲解。鼓励分

查看全部评分

4 个回复

倒序浏览
     这个问题当时也难住我了,后来终于搞懂了。原码、反吗和补码,有一个原则,就是:正数的原码和补码都是一样,而负数就是:反吗是原码求反,补码实在原码加一,最高位是一。
    但是在编程的时候,计算机是以补码存储的。比如说6的原码是0000 0110,而-6的原码是1000 0110,一个负数的补码等于它补码的补码,即:1000 0111就是-7。    这点就是比较容易饶人一些,不过熟了,就不会了。楼主加油

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

回复 使用道具 举报
关于这个问题,问题是在于最高位代表的是什么,最高位代表的是数字的符号,0代表的是正负号,即整数;1代表的是负符号,即负数
回复 使用道具 举报
关于原码,反码,补码……
这是我帮楼主找的文章
楼主看看应该会有帮助……

http://www.douban.com/note/223507364/
--------------------------------------------------------------------------------------
负数我们平时在写的时候其实它前面都是一堆1,我们只是省略了没写
1111-1111…………1111-1010前面都是1,
我们说首位是1,并不是我标绿色的那一位,。而是我们省略掉没写的那部分的最高位(即标红色的那位)
-------------------------------------------------------------------------------
正数的有效位前都是0,也就省略不写
0000-0000…………1111-1010 前面全是0的
我们说首位是0,并不是我标绿色的那一位,。而是我们省略掉没写的那部分的最高位(即标红色的那位)


评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

回复 使用道具 举报
6的2进制是0000-0000 0000-0000 0000-0000 0000-0110,总共32个2进制位,8个2进制位为1个字节,为避免麻烦才简写的,-6是原码的反码+1
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马