前言:阅读此文需要掌握原码,补码,反码,移码,真值相关的基础知识点。
part 1:定点表示法
先来了解一个概念—机器数。什么是机器数呢?一个数在计算机中的二进制表示形式就被称为机器数。
例如,若一个字节为8位,则+5可以表示为00000101,若取负,则将首位0变为1即可。那么这两个便被称为机器数。
何为定点呢?就是将小数点进行固定,也就是说将小数点的位置约定俗成地隐含掉。
定点表示有两类,定点小数与定点整数。
先来谈谈定点小数吧。
定点小数即纯小数,小数点的位置固定在符号位之后,最高有效数位之前。
看懂了上面的图,那么也就不难推出以下两点
第三个数的位权写错了,应该是负二次方,注意一下。
符号位取0,后面则作为纯小数按照要求进行取1取0,再通过所标明的位权进行换算成为真值。
由于负数补码原码不同,那么我们就要分开讨论了。
综上所述,若机器字长为N+1位,那么得出如下结论
那么搞懂了定点小数,就来康康定点整数吧。
定点整数为纯整数,小数点位置隐含在最低有效数位之后,如图例
有了这些认识那么就可以很轻松的得到以下推论,当机器字长为n+1位时有
那么到这里,就可以引入新的知识点,浮点表示法啦
因为在科学计数法里面,计算机需要处理的基本都是混合数,如果仍然沿用上述的定点表示,就需要设定比例因子等方法来进行运算,而且难以兼顾数值范围与非常重要的运算精度问题。所以我们需要浮点数来进行计算。
在大多数计算机中,尾数都是纯小数,常用补码或原码来表示。阶码为纯整数,常用移码或补码来表示。而r通常情况下为2。
那么就可以有以下推论啦
内容大体就到这里了,还是很简单的,还有最后一个需要注意的地方,规格化浮点数。
为了提高运算精度,所以需要充分利用尾数的有效数位,所以会规定尾数的最高位必须得是一个有效值。
规格化要求:原码 最高数位均为1。
补码 最高数位与符号位不同即可。
要注意在尾数进行调位时阶码也要有相应的变化哟。
好了,大体上就到这里了,其实还有一个IEEE754标准浮点数,想起来就单独写一篇吧。