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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 曹强 中级黑马   /  2014-5-16 13:15  /  2895 人查看  /  14 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

负数二进制表示就是二进制取反+1。我有点很疑惑,比如-6的二进制,前面有很多1组成的二进制数,但是如果将这个数再进行二进制到十进制的转换,就是分别*2的n次幂,得到一个很大的数,那这个2进制数到底表示那个啊,不是太懂,求大神解答

14 个回复

倒序浏览
朋友,如果一个二进制数它的最高位为1的话,那么我们就可以说他是负数了,最高位是符号位!!(比如说我们通常是用八位二进制数去表示一个整数,若不够,则再增加八位)一定要弄清楚这个概念。当我们看到一个二进制它的最高位是1,那么我们要进行逆运算,就是减一取反,在通过分别乘以2的n次幂来转换成十进制!
回复 使用道具 举报
宋美成 发表于 2014-5-16 13:48
朋友,如果一个二进制数它的最高位为1的话,那么我们就可以说他是负数了,最高位是符号位!!(比如说我们 ...

那哪些事最高位是符号啊,还是不太懂。如果二进制位数里的全是1,就按我的错的方法求出来的数,这个整数肯定会存在,按你的方法怎么求
回复 使用道具 举报
宋美成 发表于 2014-5-16 13:48
朋友,如果一个二进制数它的最高位为1的话,那么我们就可以说他是负数了,最高位是符号位!!(比如说我们 ...

好吧,我懂了………………
回复 使用道具 举报
曹强 发表于 2014-5-16 13:56
那哪些事最高位是符号啊,还是不太懂。如果二进制位数里的全是1,就按我的错的方法求出来的数,这个整数 ...

比如说正数6: 二进制:110;这里要补全八位(以八位为例),变成:0000  0110
        负数-6: 二进制为:1111  1010:最左边那位为最高位,这里可以看出是负数,如果想要转换成十进制,那么先减一取反变成:0000 0110,这个数化为十进制为6,但由于原二进制最高位是1,所以我们得到的是负数,最后的结果就是-6了。
回复 使用道具 举报
本帖最后由 曹强 于 2014-5-16 14:11 编辑

貌似6是110,前面的0可以省略,-6前面的1不能省略吧
回复 使用道具 举报
曹强 发表于 2014-5-16 14:06
貌似6是110,前面的0可以省略,-6前面的1不能省略吧

对啊,6是110,但是如果我们要算-6的话,我们先得把+6的那八位补齐吧,然后通过取反加一才能得到-6的二进制啊
回复 使用道具 举报
曹强 中级黑马 2014-5-16 14:22:49
8#
宋美成 发表于 2014-5-16 14:14
对啊,6是110,但是如果我们要算-6的话,我们先得把+6的那八位补齐吧,然后通过取反加一才能得到-6的二进 ...

-6的取反是先算出6的二进制,把32位2进制都补全,前面还有24个1呢,不可以省略吧
回复 使用道具 举报
曹强 发表于 2014-5-16 14:22
-6的取反是先算出6的二进制,把32位2进制都补全,前面还有24个1呢,不可以省略吧 ...

恩恩,对的,我这里只是用8位做了个例子
回复 使用道具 举报
宋美成 发表于 2014-5-16 14:24
恩恩,对的,我这里只是用8位做了个例子

那我们就以8位数做例子,那我问你123怎么表示,不是1111 1010吗?如果是,那1111 1010到底表示什么?
回复 使用道具 举报
曹强 发表于 2014-5-16 14:27
那我们就以8位数做例子,那我问你123怎么表示,不是1111 1010吗?如果是,那1111 1010到底表示什么? ...

额,我算的123,二进制是:0111 1011;那么-123就是1000 0101啊,so~
回复 使用道具 举报
本帖最后由 曹强 于 2014-5-16 15:15 编辑
宋美成 发表于 2014-5-16 14:40
额,我算的123,二进制是:0111 1011;那么-123就是1000 0101啊,so~

哥哥啊,-6后8位就是1111 1010,我刚搞错了,1111 1010代表的是251,给你搞糊涂了,251怎么表示
回复 使用道具 举报
曹强 发表于 2014-5-16 15:09
哥哥啊,-6后8位就是1111 1010,我刚搞错了,1111 1010代表的是251,给你搞糊涂了,251怎么表示 ...

难道要在前面加个0表示,变成0 1111 1010不成,然后把0省略,然后就又一样了
回复 使用道具 举报
加我Q吧,我给你好好说这个问题~690993270
回复 使用道具 举报
曹强 发表于 2014-5-16 15:16
难道要在前面加个0表示,变成0 1111 1010不成,然后把0省略,然后就又一样了 ...

你这里是假设的用八位去表示对吧,八位二进制最多能表示到127,你这都251了,显然八位已经不能满足要求了啊,加我Q吧,我给你好好说这个问题~690993270
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马