什么是定点数?定点数应用的场景有哪些?定点数怎么进行四则运算?
首先来看一下什么是定点数,定点数和浮点数是个相对的概念,定点数,即带一个固定小数点的数,小数点的位置固定,例如怎么用一个16bit整数来表示一个带5位小数的数呢?
上图是我们常见的整数的位存储,此时小数点位在bit0的右侧,如果我们将小数位移动到bit5的右侧,是不是可以实现带5位小数的数呢?如下图所示,我们可以通过定义一个小数点的位置,来表示一个带指定位小数的数。
为什么要使用定点数?
对于大部分低档次的微处理器,都是不支持硬件浮点数运算的。一般软件在处理浮点数运算时,会占用更多的ROM和RAM空间,因此浮点数的运算会比整数运算需要更多的时间,对于一个8位的微处理器来讲,进行浮点数加法运算可能需要几百微秒,而进行16位的整数运算只需要几微秒的时间,在进行浮点数乘法和除法运算时,需要的时间会更长,如何尽量少的避免浮点数运算呢?我们可以将浮点数转换成定点数,然后来进行加减乘除四则运算。定点数的运算是整数的运算,主要的目的是使计算机认为我们在进行整数的运算,而实际上我们是在运算带有小数的数。
定点数如何表示?
这里我们定义一个式子来表示定