计算机组成原理关于一值四码!
第一篇博客,作为开启博客园生活的开篇之作,我觉得还是把自己最近几天所学习的内容贴出来吧!也是搞了不少时间!作为小白,还请业内大佬多多指教!
众所周知,一个真值有原码、反码、补码以及移码四个码,这被我们称作是一值四码!其中原码最容易理解,就是值的本身嘛!今天重点跟大家分享下反码、补码和移码的计算方式!
原码是什么?
一个真值有多种表示方法,在机器里,我们只能用二进制来表示,因为机器内部并不跟人的思想一致,它只能判断0或者是1!所以真值的原码就是真值的二进制表示!不过需要注意的是,第一个字节用来表示符号位!正值用0表示,负值用1表示!即X=XnXn-1...X1X0.数值位n位,符号位一位,即Xn!
--> X , 0<=X<=2^n-1
其中公式为 【X】原=
--> 2^n-X , -(2^n-1)<=X<=0
此外需要注意的是0有两个原码,即+0和-0两个!
已知一个真值得原码,即二进制表示的码如何求反码呢?
我们不妨举一个例子,已知一个原码00001001,其中第一位表示符号位其实它的反码一目了然,正如我们从字面意思理解的那样,它的反码就是01110110.通过这个例子我们可以发现,只用把原码的符号位不变,其余的值,0变为1,1变为0即可!
--> X ,0<=X<=2^n-1
也可以用公式【X】反=
--> 2^(n+1)+X-1, -(2^n-1)<=X<=0
其中补码理解起来稍微困难一点,补码的存在主要是因为计算机习惯加法运算,减法运算极为麻烦,所以前人就想出了补码来解决这个问题!
当遇见两个数相减的时候,可以看做是一个正数和一个负数相加,而负数则用补码来代替运算!
其中补码就等于反码+1!
--> X ,0<=X<=2^n-1
公式为【X】补=
--> 2^(n+1)+X , -2^n<=X<=0
其中可以注意到补码的范围比原码和反码多1,其中最直接的原因就是因为原码和反码中的0有+0和-0之分,而补码的0只有这一个值,所以省出来的一个字节就用来给负值的补码了!
最后说一下移码,个人以为移码只需要记着计算方式即可,移码可以通过补码计算,移码与补码的关系就是补码的符号位取反,数值位不变,这就是移码!
文章也许有很多不足,希望各位业内大佬多多指点!