十进制负数转换成二进制数
正数转负数是:对应正数的二进制按位取反,加1;那负数转正数不都应该是:先减1,在取反;为什么先取反,在加1也行...
正数转负数是:对应正数的二进制按位取反,加1;
那负数转正数不都应该是:先减1,在取反;
为什么先取反,在加1也行 展开
那负数转正数不都应该是:先减1,在取反;
为什么先取反,在加1也行 展开
3个回答
2013-07-08
展开全部
数制转换(用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进制数都不是问题。
十进制转二进制:
正数直接转 如 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进制数都不是问题。
展开全部
这个应该是对补码进行操作吧?假如5个bit来表示一个数
可以这么证明:负数全部取反与原补码的和为11111,如果把00001与11111相加,就得到了00000,这说明这个操作最后求出来的数是正确的。
再考虑先减1再取反是一个逆操作也是正确的
其实就和-(+a)和+(-a)一个道理
可以这么证明:负数全部取反与原补码的和为11111,如果把00001与11111相加,就得到了00000,这说明这个操作最后求出来的数是正确的。
再考虑先减1再取反是一个逆操作也是正确的
其实就和-(+a)和+(-a)一个道理
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
???
我知道的十进制转二进制是:
不断×2,每次取整数位。如果整数位变成1了,取1后,再把整数位变成0,小数部分不变,知道取到题目上要求的位数。如果没要求,就随便你取到第几位。取到的数正着看,和整数相反。
我知道的十进制转二进制是:
不断×2,每次取整数位。如果整数位变成1了,取1后,再把整数位变成0,小数部分不变,知道取到题目上要求的位数。如果没要求,就随便你取到第几位。取到的数正着看,和整数相反。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询