
怎么求补码的原码?
2023-01-06 · 百度认证:广东太平洋互联网信息服务有限公司官方账号,优质数码...

已知一个数的补码,求原码的操作其实就是对该补码再求补码:
1、如果补码的符号位为“0”,表示是一个正数,其原码就是补码。
2、如果补码的符号位为“1”,表示是一个负数,那么求给定的这个补码的补码就是要求的原码。
例如:已知一个补码为11111001,则原码是10000111(-7)。因为符号位为“1”,表示是一个负数,所以该位不变,仍为“1”。
其余七位1111001取反后为0000110;再加1,所以是10000111。
扩展资料:
数的表示:
在数的表示上通过人为的定义来消除编码映射的不唯一性,对转换后的10000000强制认定为-128。当然对原码和反码也可以做这种强制认定,那为什么原码和反码没有流行起来?原码和反码没有流行起来,是因为在数的运算上对符号位的处理无法用当时已有的机器物理设计来实现。
由于原码和反码在编码时采用了硬性的人工设计,这种设计在数理上无法自动的通过模来实现对符号位的自动处理,符号位必须人工处理,必须对机器加入新的物理部件来专门处理符号位,这加大了机器设计难度,加大的机器成本,不到万不得已,不走这条路。
参考资料:
为什么要把补码转变成原码?
求原码干嘛呢?
这确实一个奇怪的事!
正负数值,存入计算机内部后,就是补码。
人们看到补码,就应该把它转换到十进制数。
做这个转换,和原码没有任何关系。
为什么总有人念念不忘绕远道转去原码呢?
只能说,跟老外学算术,立刻马上就掉坑里去了!
---------------
由补码,直接求出十进制数,方法,很简单。
只要记住:【补码首位的权,是负数。】
例如,1110 0011 是八位补码。
其首位 1,既代表负号,也代表数值-128。
所以,十进制数就是:-128 + 64 + 32 + 2 + 1 = -29。
-------
如果,补码是:0110 0011。
首位是零,这就更简单了!
其真值就是: 0 + 64 + 32 + 2 + 1 = +99。
---------------
你只要使用一次【进制转换】,就完事了!
哪里还需要“补码取反加一得原码符号位再变成加减号 ... ”,
这些都是计算机专家忽悠你呢!