实数的表示方法
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.IEEE 浮点数标准(IEEE floating number standard)
1)电子与电气工程师协会(Institute of Electrical Electronics Engineers/IEEE)是一个非盈利的专业技术协会,它是计算机工程和通讯技术领域的权威。
2)在20世纪70年代之前,不同的计算机生产厂家对于实数的表示采用不同的形式,这使得许多程序对于
不同的机器是不兼容的。在1980年,IEEE对于实数的浮点数表示方法进行了标准化,将实数的浮点数表示方法统一了起来。由于不同的应用领域对于数值的精度要求不同,IEEE给出了两种实数的浮点数表示方法,分别是单精度(single precision)浮点数表示方法和双精度(double precision)浮点数表示方法。
3)单精度浮点数(single precision floating number)
能力要求:当面对一个实数时,应能够将其转换为相应的单精度浮点数。
单精度浮点数表示方法使用32位来表示实数;31位是符号位(0表示正,1表示负);30位到23位这8位用于存放偏置指数(biased exponent);22位到0位这23位用于存放有效数字(significant)。
将十进制实数转化为单精度浮点数的步骤如下:
(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
(2)二进制实数+1001.11对应的科学计数法形式为+1.00111E11
(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
4)双精度浮点数(double-precision floating number)
双精度浮点数与单精度浮点数的不同之处在于:双精度浮点数使用64位来表示实数;63位是符号位(0表示正,1表示负);指数加上十六进制数3FF得到偏置指数,偏置指数放到62位到53位的右边,左边补0;有效数字放到52位到0位的左边,右边补0;
例题:将十进制实数152.1875转化为双精度浮点数
5)思考题:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论