原码反码补码计算器
发布时间:2025-10-06 | 来源:互联网转载和整理
1、二进制补码的计算方法二进制的补码计算非常简单,各种教材中也经常使用二进制来说明源码、反码与补码三者的关系,掌握一定基础的人都知道一下规则:
1. 1 原码最高位为符号位,0表示正数,1表示负数。
例如: X = 0b11 (3),四比特表示原码 = 0011(3) ; X = - 0b11(-3) ,四比特表示原码 = 1011(11) ;1.2 反码最高位为符号位,0表示正数,1表示负数。正数的反码等于本身,负数的反码除符号位外,各位取反:例如: X = 0b11 (3),四比特表示原码 = 0011(3),对应反码为 = 0011(3) ; X = - 0b11(-3) ,四比特表示原码 = 1011(11),对应反码为 = 1100(12) ;1.3 补码最高位为符号位,0表示正数,1表示负数。正数的补码等于本身,负数的补码等于反码+1:例如: X = 0b11 (3),四比特表示原码 = 0011(3),对应反码为 = 0011(3) ,补码为 = 0011(3); X = - 0b11(-3) ,四比特表示原码 = 1011(11),对应反码为 = 1100(12),补码为1101(13) ;2十进制的补码计算方法对于十进制数来说通过前面的性质不难得到正十进制数补码等于其本身,对于负十进制数来说如果还按位进行运算就太麻烦了!为了讲明白,我们从补码的起因说起:“反码加一”只是补码所具有的一个性质,不能被定义成补码。负数的补码是能够和其相反数相加通过溢出从而使计算机内计算结果变为0的二进制码。这是补码设计的初衷,具体目标就是让1+(-1)=0,这利用原码是无法得到的:而在补码中:所以对于一个n位的负数-X,有如下关系:所以假设寄存器是n位的,那么-X的补码,应该是的二进制编码。例如前面举得例子:例如: X = - 0b11(-3) ,四比特表示原码 = 1011(11),对应反码为 = 1100(12),补码为1101(13) ;如果寄存器4位,-3对应的补码二进制数为13,刚好是正十进制数补码等于其本身,n位寄存器下-X的补码等于对应的二进制编码。如果使用python的话,可以使用来快速获取补码:-30xf Out: 13 50xf Out: 5这里的0xf指的是0b1111,表示4位的寄存器。如果是7位寄存器,0b111111就是0x3f。
3、已知补码怎么求原码?对于正数来说根据前面的介绍很容易知道 原码=补码=反码,接下来主要讨论给定负数的补码怎么求负数的原码:3.1 二进制先说结论:补码的补码就是原码。下面开始证明:已知二进制的补码为,根据1.3中求补码的过程易得事实上上式还等价于:可以简单证明一下,根据反码实际的求解过程可以得到下面式子:当a=a-1时有:上面两式子说明了:用文字描述即:取反加一等价于减一取反!所以二进制补码有如下关系:也就是说补码的补码就是原码,有点负负得正的意思哦。
3.2 十进制n位寄存器下-X的补码等于对应的二进制编码。
(1)十进制的情况下,如果给的补码是无符号数,那么原码即即可。例如前面-3补码无符号数是13,对应的原码就是(2)十进制的情况下,如果给的补码是有符号数-Y,对应的无符号数就是,那么原码就是。例如前面-3补码有符号数是-5,对应的原码就是编辑于 2021-10-30 13:39
上一篇:口袋妖怪剑盾岩狗狗怎么进化
下一篇:什么是大学综合测评