十进制负数转换成二进制数

正数转负数是:对应正数的二进制按位取反,加1;
那负数转正数不都应该是:先减1,在取反;
为什么先取反,在加1也行

数制转换(用8bit整数说明):
十进制转二进制:
正数直接转 如 55 = 0011 0111b
负数:绝对值转换成二进制,按位取反,加1,
如-55,先把55转换成0011 0111b,取反: 1100 1000b 加1:1100 1001b

逆问题,二进制转十进制,要弄清楚是多少位的,不足的部分要在前面把0补上。
首先看首位是0还是1, 0表示正数,1表示负数。正数直接转,负数,先减一,按位取反,转换十进制,加上负号。
例如 0100 1000 转过来是72
1000 0000 第一位为1 表示是个负数,所以减一,0111 1111,取反1000 0000转换成十进制128,加上负号 -128。

有了二进制,16进制和8进制数都不是问题。
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-07-08
这个应该是对补码进行操作吧?假如5个bit来表示一个数
可以这么证明:负数全部取反与原补码的和为11111,如果把00001与11111相加,就得到了00000,这说明这个操作最后求出来的数是正确的。
再考虑先减1再取反是一个逆操作也是正确的
其实就和-(+a)和+(-a)一个道理本回答被提问者和网友采纳
第2个回答  2013-07-08
???

我知道的十进制转二进制是:
不断×2,每次取整数位。如果整数位变成1了,取1后,再把整数位变成0,小数部分不变,知道取到题目上要求的位数。如果没要求,就随便你取到第几位。取到的数正着看,和整数相反。

十进制负数转换成二进制数
十进制转二进制:正数直接转 如 55 = 0011 0111b 负数:绝对值转换成二进制,按位取反,加1,如-55,先把55转换成0011 0111b,取反: 1100 1000b 加1:1100 1001b 逆问题,二进制转十进制,要弄清楚是多少位的,不足的部分要在前面把0补上。首先看首位是0还是1, 0表示正数,1表示负数。

十进制负数转换成二进制数的方法?
十进制负数转换为二进制的方法为:1、将十进制转换为二进制数。2、对该二进制数求反。3、再将该二进制数加1.总之就是将十进制数转换为二进制数求补码即为结果。比如:-32 第一步:32(10)=00100000(2)第二步:求反:11011111 第三步:加1:11100000 所以-32(10)=11100000(2)...

十进制负数转化成二进制?
负数的补码:符号位变为一,数值位取反加一,符号位是二进制数的第一位,其余为均为数值位具体实例分析:十进制负数转化成二进制:先把十进制负数取正,然后用二进制表示出来,因此-14先表示成01110,第一位是符号位0,变为1,数值位取反变为0001,再加1变为0010,因而-14补码就是10010,至于你题...

十进制负数转化成二进制?
按一般思维,14转为二进制:0000 0000 0000 1110(高位补零,假设字长16位)-14转为二进制:1000 0000 0000 1110(最高位为符号位,1表示负,0表示正)但实际上计算机存储数值时是存储的它的补码。一般情况下:对正数,它的补码为它本身;对负数,它的补码为它的反码(除符号位外各位取反,如-14...

十进制负数转换成二进制、八进制、十六进制
十进制整数转换为二进制数的方法:除2取余把十进制数15转化成二进制数15\/2=7 余17\/2=3 余13\/2=1 余11\/2=0 余1结果:1111二进制转换为八进制的方法: 将二进制数从右到左,三位一组,高位不够补0例:二进制数1110111011转换为八进制数: 001 110 111 011(最前面补了两个...

负的十进制数如何转化成二进制数
负的十进制数在转换成二进制,可以表示为二进制原码,也可以表示为二进制补码。例如,-10 原码:10001010 首位1是符号位,表示负数 补码: 11110110 原码符号位不变数值部分按位取反在加1

负的十进制数转换成二进制,该怎么办?举个具体例子
负的十进制数转换成二进制 就是该十进制的补码,负数的补码:将该数的绝对值的二进制形式按位取反再加1 比如-10 10的原码: 0000000000001010 取反: 1111111111110101 -10的二进制:1111111111110110 这是按16位算的,同样的方法,可以算8位32位64位的 ...

十进制负数转换成二进制、八进制、十六进制
十进制负数转换成二进制、八进制、十六进制需要先把负数写为其二进制补码形式,然后再根据二进制转换其它进制的方法进行。如十进制负数-617,先转换成二进制1000000000001100,再补码,取反加一,为1111111111110100。转换成八进制是三位一结合,即177764(8)。转换成十六进制是四位一结合,即fff4(16)。

负的十进制数能否转换成二进制?
负的十进制数转换成二进制 就是该十进制的补码,负数的补码:将该数的绝对值的二进制形式按位取反再加1 比如-10 10的原码: 0000000000001010 取反: 1111111111110101 -10的二进制:1111111111110110 这是按16位算的,同样的方法,可以算8位32位64位的 参考资料:http:\/\/zhidao.baidu.com\/question\/...

十进制负数转换成二进制、八进制、十六进制 希望能在20...
如果要在计算机中存储这些数,就要用原码或补码的形式,这时负号“-”用“1”表示。—111的原码表示为: 11101111,—111的补码表示为:10010001,这是8位二进制数,如果用十六位二进制数表示补码,是:1111111110010001,再转换成八进制,就是:177621,最前面那个“1”补两个“0”就是“001”,是八...

相似回答