转自:http://blog.csdn.net/longxuekun1992/article/details/52895302
1. 选取合适的定标值(加载操作数)
定标的大小,影响着整数部分和小数部分的位数,定标的过程其实是在操作数动态范围和精度之间做权衡的过程。
设一个变量可能出现的最大绝对值为|max|,n为正整数,满足2^(n-1) < |max| < 2^n,则定标Q按如下规则选取最合适:
Q = 有效数据位 – n
对于32位的有符号数,数据有效位=31。如|max| = 2.75,选Q = 31 – 2 =29是最合适的。
2. 定点数之间的运算
两个定点数进行运算,它们的定标可能相同也可能不同,那该遵循怎样的规则来进行加减乘除等基本运算呢?
网上有些资料通过分别举加、减、乘、除实际运算的例子来说明这一问题,虽然很详细,但还是不够直观。
来看一看,平时我们用十进制做两个数的加减和乘除是怎么弄的。
加减法:先对位,后加减;
乘除法:先乘除,后取小数点。
而定点数之间的加减乘除,撇开符号位不谈,其过程是一样一样的:
加减法:先对标,后加减;
乘除法:先乘除,后定标。