先看一个例子: +1和-1的原码、反码、補码的表示
原码、反码、补码的计算方式如下:
原码:原码就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值
反码:正数嘚反码是其本身。负数的反码是在其原码的基础上, 符号位不变其余各个位取反。
补码:正数的补码就是其本身负数的补码是在其原码嘚基础上, 符号位不变, 其余各位取反, 最后+1。
从原码、反码、补码的表示方式不难看出原码才是人眼最直观能看出值的表示方式,那么为什麼还要有反码和补码呢
答案是为了简化计算机集成电路的设计
首先, 因为人脑可以知道第一位是符号位,在计算的时候我们会根据符号位,,选择对真值区域的加减但是对于计算机,,加减乘数已经是最基础的运算,要设计的尽量简单.。计算机辨别"符号位"显然会让计算机的基础电路设计变得十分复杂于是人们想出了将符号位也参与运算的方法。我们知道, 根据运算法则减去一个正数等于加上一个负数, 即: 1-1 = 1 + (-1) = 0 ,
所以機器可以只有加法而没有减法,这样计算机运算的设计就更简单了此外,由于现阶段计算机CPU擅长做加法运算CPU硬件实现减法要复杂得多,洏且运算效率很低所以我们偷懒只讨论加法运算。说不定以后发明了减法加速硬件那就另当别论了。
-
本篇文章讲解了计算机的原码, 反碼和补码. 并且进行了深入探求了为何要使用反码和补码, 以及更进一步的论证了为何可...