原码
正数
正数中原码比较简单,直接将正数转换成二进制数,原码便是最高位为0其余位是该二进制数。位数不够时直接往前补0便可。比如42它的原码是如何计算出来的呢,如下图所示
最后它的原码便是:0101010若要求它的16位原码如何表示直接往前补0即可如42的16位原码是0000000000101010。
负数
负数中原码和正数类似,但是复杂一点,先求出此负数绝对值的二进制数,然后在最高位写1其他位写上负数绝对值的二进制即可。如-42它的绝对值42的二进制数为101010,则-42的原码为1101010若位数不够便让最高位为1然后中间补0最后写上该数绝对值的二进制数。如-42的16位原码为:1000000000101010
反码
反码是在原码基础上稍作变化就能得出的。
正数
正数的反码就是它的原码。如42的反码是0101010位数不够时往前补0即可,如42的16位反码是:0000000000101010
负数
负数的反码便是保持它原码的最高位不变,其余各位取反。取反的意思就是0变1,1变0。
比如-42的原码为1101010则它的反码是:1010101,位数不够时往前补1即可,如-42的16位反码: