实数的表示方法
1.科学计数法(scientific notation)
科学计数法是为了表示绝对值非常大的或非常小的实数时,所引入的一种方法。例如对于十进制实数+0.0000 0001而言,其相应的科学计数法表达形式为+1×10^-8;对于十进制实数-230000而言,其相应的表达形式为-2.3× 105;对于二进制实数+10.001而言,其相应的科学计数法表达形式为:+1.0001×2^1;对于16进制实数-ff.2ea3而言,其相应的科学计数法表达方式为-f.f2ea3×16^1。
一般来说,一个n进制实数对应的科学计数法表达形式由四个部分组成,分别是系数(coefficient),基数(base),指数和表示正负的符号。系数是介于表示正负的符号与乘号之间的实数,系数中的每个数字大于等于零,小于n,而且系数中小数点之前的数字只有一个,且不可以为0;基数是乘号后的指数式的底数,基数是等于n的;指数是乘号后的指数式的指数;表示正负的符号。
2)单精度浮点数(single precision floating number)
单精度浮点数表示方法使用32位来表示实数;31位是符号位(0表示正,1表示负);30位到23位这8位用于存放偏置指数(biased exponent);22位到0位这23位用于存放有效数字(significant)。 浮点数的基数什么意思
符号域 指数域 小数域 指数偏移量
单精度浮点数 1 位[31] 8位[30-23] 23位[22-00] 127
将十进制实数转化为单精度浮点数的步骤如下:
(1)首先将十进制实数转化为对应的二进制实数。
(2)将得到的二进制实数以类似于科学计数法的方法写出这样的形式+1.xxxxEyyyy。xxxx被称为有效数字,yyyy被称为指数。
(3)若为正,31位为0;若为负,31位为1.
(4)将指数加上十六进制数7F得到偏置指数,然后将所得结果放到30位到23位的右边,左边补0。
(5)将有效数字放到22位到0位的左边,右边补0。
请注意:有效数字是介于小数点和E之间的部分,并不是介于正负号和E之间的部分。
例题1:将十进制实数+9.75转化为单精度浮点数。
(1)十进制实数+9.75对应的二进制实数为+1001.11
整数部分(9)的计算:1001
小数部分(0.75)的计算:
0.75*2=1.5--------1
0.5 *2=1 ---------1
(2)二进制实数+1001.11对应的科学计数法形式为+1.00111E3=1.00111*2^3
(3)由于为正数,因此31位为0。
(4)偏置指数的十六进制形式为82,二进制形式为1000 0010.放到30位到23位的右边。
(5)将有效数字00111放到22位到0位的左边,右边补0.
最后得到的结果为:0 1000 0010 0011 1000 0000 0000 0000 000
练习题1:将十进制实数0.078125转化为单精度浮点数
答案为:0011 1101 1010 0000 0000 0000 0000 0000
3)双精度浮点数(double-precision floating number)
双精度浮点数与单精度浮点数的不同之处在于:双精度浮点数使用64位来表示实数;63位是符号位(0表示正,1表示负);指数加上十六进制数3FF得到偏置指数,偏置指数放到62位到53位的右边,左边补0;有效数字放到52位到0位的左边,右边补0;
例题:将十进制实数152.1875转化为双精度浮点数
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论