前面讲述了十进制整数和小数在计算机里面的存储,但是计算机终究是用来做计算的机器,归根到底它的作用还是用来计算,这一小节就来讲解一下存储在计算机中的二进制数是如何来运算的。首先我们来一起看一下二进制加法。
二进制加法的计算过程和十进制加法一样,在演算的时候可以列出竖式进行计算。如一个加法程序,用户输入两个十进制数85和78进行加法运算,首先计算机收到这两个数之后,将其存储起来,在运算时再将它们放入寄存器中,此时的它们存储时就已经是二进制了,(85)d=(01010101)b,(78)d=(01001110)b。计算式如下:
(10100011)b转成十进制就是(163)d。
这里告诉大家一个秘密,早期的x86 CPU内部是只能做加法,不管是加法还是减法,都是用加法器来计算的。加减法机制到目前的CPU上面还是如此,即减法和加法,CPU最终都是做的加法运算,而乘法和除法运算现在的CPU则和以前的有很大区别,后面会讲述。
其实计算机在存储变量的时候,计算机都是以补码方式存放的,这里引入了一个新概念叫做补码。在讲补码之前先阐述两个其他概念,原码和反码。
原码,其实就是二进制码本身,例如,一个十进制的数50,