原码反码补码存在的意义何在(都学过原码反码)
原码反码补码存在的意义何在(都学过原码反码)一个数如果是负,则符号位为1,其余各位是对原码(除符号位)取反;一个数如果是正,则它的反码与原码相同;一个数如果正,则就是计算二进制。一个数如果负,则将正数的最高位变成1。 注意,最高位是符号位,不能算入计算真值。46的二进制是101110。所以原码为00101110(八位填满0补位)。19的二进制是10011。则19的原码是00010011。-19符号位变1,即10010011。 OK,下面了解反码。
其实就是为了简化CPU的设计,CPU只需设计一个加法器就可以做算术四则运算。 为啥?往下看。
我们把一个数在计算机内的二进制形式称为机器数(带符号),该数值称为这个机器数的真值。
机器数通常是8位或16位(具体和与机器有关)。最高位表示符号,0表示正,1表示负。例如,假设机器数为8位,最高位是符号位,那么在定点整数的情况下,00101110和10010011的真值分别为十进制数 46和-19。
好。开始说明为什么这两个二进制数是46和-19。 首先需要了解 原码。
一个数如果正,则就是计算二进制。
一个数如果负,则将正数的最高位变成1。
注意,最高位是符号位,不能算入计算真值。46的二进制是101110。所以原码为00101110(八位填满0补位)。19的二进制是10011。则19的原码是00010011。-19符号位变1,即10010011。 OK,下面了解反码。
一个数如果是正,则它的反码与原码相同;
一个数如果是负,则符号位为1,其余各位是对原码(除符号位)取反;
所以,46的反码是00101110,-19的反码计算过程为:19的原码(除符号位),按位取反,得到01101100,然后符号位至为1,最终得到11101100。
下次介绍位移运算。谢谢关注。