14.5 浮点计算
定点数:
在运算过程中,小数点的位置始终是固定不变的。例如:
整数的表示: xxxxxx.
纯小数的表示: .xxxxxx
整数与小数的表示: xxxx.xx
浮点数:
在运算过程中,小数点的位置可以根据实际需要来改变,但不能改变数值的大小。例如:
123.4 = 12.34* 101 = 1.234*102 = 0.1234*103
浮点数主要包括尾数(Mantissa)、指数(Exponent)、底数(Base)三部分:
注意:这里尾数才是数值的有效部分,指数决定数值的大小,也就是说,小数点的实际位置是由指数来决定的,这也是浮点数的特性之一。
科学计数法:
科学记数法是一种记数的方法。把一个数表示成a与10的n次幂相乘的形式(1≤|a|<10,a不为分数形式,n为整数),这种记数法叫做科学记数法。 [2]例如:19971400000000=1.99714×10^13。计算器或电脑表达10的幂是一般是用E或e,也就是1.99714E13=19971400000000。科学计数法的好处能够比较方便而又简洁的表示一个较大或者较小拥有较多位的数据,方便表示也方便识别。如:光的速度大约是300,000,000米/秒;全世界人口数大约是:8,000,000,000这样的数据读写都很不方便,我们可以免去写这么多重复的0,将其表现为这样的形式:6,100,000,000=6.1×10^9。
相关运算表达形式:
- aEb=a×10^b
- aEc±bEc=﹙a±b﹚Ec
- aEM×bEN=abE(M+N)
- aEM÷bEN=a/bE(M-N)
在计算机中都是二进制进行运算的,所以在计算机中采用a乘以2的n次幂的形式表示一个数,即浮点数的值V = (-1)S x M x 2E,其中M为尾数,E为阶数。
补码相关知识:
正数(包括0)的反码,补码都是其本身;负数的反码最高位符号位不变其他位取反,负数的补码是反码加1. 计算机中之所以使用补码是为了把减法运算转换成加法运算,实际CPU中是没有减法器的。其实单独使用反码就可以把减法运算变成加法,但是如果仅仅使用反码则会出现+0和-0两个0,以8位二进制为例,+0:0000_0000,-0:1000_0000。反码的表示范围为-127到+127,存在+0和-0.而计算机中0的表示必须是唯一的,所以就通过反码加1,把负数的部分平移1位则负数变成-1到-128范围,整个8进制范围变成-128到+127,不存在两个0.即补码就是为了解决正负两个零的问题。