由补码求原码如何求?
2019-09-08
我帮你解决这个问题,作为交换,如果以后有陌生人问你这么简单的问题,请帮他耐心解答。
一. 先从理论上认识一下原码,补码,反码。(你问这个问题,我就当你有相关知识基本概念,大致讲讲)
1. 二进制有便于模拟电路或与非、便于计算机设计、抗干扰性强的好处(我当年的机组书上大概是这个意思)——于是诞生了原码;
2.原码无法解决正负相加等于0的问题(你可以自己找个正负树原码加一下)——于是引入了反码;
3.原码,反码有两个0(正负0),为了解决这个问题引入了补码(补码的0表示是唯一的)
二. 十进制化为原码(我以正负47举例)
这就求出了47的8位原码,当然你也可以直接拼凑出来,我这样用算的思路是便于你以后写程序的时候便于设计算法。
1.原码 最高位为符号位:
+47的16位原码:0000 0000 0010 1111 ;-47的16位原码:1000 0000 0010 1111
2.反码 正数和原码相同。负数在原码的基础上除符号位为其余各位取反:
+47的16位反码:0000 0000 0010 1111 ;-47的16位反码:1111 1111 1101 0000
3.补码 正数和原码、反码相同。负数在反码的基础上最低位加1(二进制算法)
+47的16位补码:0000 0000 0010 1111 ;-47的16位补码:1111 1111 1101 0001
计算方法如下:
其余的自己算吧,还有不懂的可以私我,最好自己照着思路推算出其他的。
大家都在看
本站系本网编辑转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与本网联系,我们将在第一时间删除内容!本站文章版权归原作者所有,内容为作者个人观点。本站只提供参考并不构成任何投资及应用建议。本站拥有对此声明的最终解释权。