
为什么负数在内存中要以二进制补吗的形式存放?
请高手详细解答谢谢了这个问题困扰我很久正整数存放在内存中就是他的二进制为什么负数是补吗?为什么要选择这样做?...
请高手详细解答 谢谢了 这个问题困扰我很久 正整数存放在内存中就是他的二进制 为什么负数是补吗?为什么要选择这样做?
展开
5个回答
展开全部
数字计算机里面,只有加法器,没有减法器,减法(或负数)必须改用加法进行。
在十进制,减去28,和加上72,效果相同(忽略进位时)。
28,72,互为补数。
在二进制,减去1101,和加上0011,效果也是相同的(忽略进位时)。
1101,0011,互为补码,对其中一个求反加一,即可求出另一个。
这就是说,用补码当做负数,就可以用加法代替减法。
原码和反码,就没有这个功能,所以内存中就没有它们。
详细解释,可以参考:
http://hi.baidu.com/%D7%F6%B6%F8%C2%DB%B5%C0/blog/item/d92cc986c2a1523bc75cc380.html
在十进制,减去28,和加上72,效果相同(忽略进位时)。
28,72,互为补数。
在二进制,减去1101,和加上0011,效果也是相同的(忽略进位时)。
1101,0011,互为补码,对其中一个求反加一,即可求出另一个。
这就是说,用补码当做负数,就可以用加法代替减法。
原码和反码,就没有这个功能,所以内存中就没有它们。
详细解释,可以参考:
http://hi.baidu.com/%D7%F6%B6%F8%C2%DB%B5%C0/blog/item/d92cc986c2a1523bc75cc380.html
2011-02-19
展开全部
告诉你原理,1111111111111111的最高位代表负数没错,剩下的15位全是1,在二进制里就是能表示出来的最大的正数了,你想,一个最大的数前面加个负号,那么这个数是不是就成为了最小的负数?电脑里存放的十进制都是小数点前面的数,也就是整数。10进制里最小的负整数,那当然就是-1了。
明白了就给我加分吧。
明白了就给我加分吧。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
负数用补码形式来代表,就可以和无符号数一样进行运算,使用同一个加法器。
这样一来,计算机里面,只要有一个加法器,就可以进行加、减运算了。
这样一来,计算机里面,只要有一个加法器,就可以进行加、减运算了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
首先表示负数第一位是符号位
如果用普通方式,则会出现+0,-0的情况。
00000000和10000000.表示了两个符号不同的0.
如果用普通方式,则会出现+0,-0的情况。
00000000和10000000.表示了两个符号不同的0.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
因为电脑只认识0和1
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询