Java 语言支持两种基本的浮点类型: float 和 double ,以及与它们对应的包装类 Float 和 Double 。它们都依据 IEEE 754 标准,该标准为 32 位浮点和 64 位双精度浮点二进制小数定义了二进制标准。
IEEE 754 用科学记数法以底数为 2 的小数来表示浮点数。IEEE 浮点数用 1 位表示数字的符号,用 8 位来表示指数,用 23 位来表示尾数,即小数部分。作为有符号整数的指数可以有正负之分。小数部分用二进制(底数 2)小数来表示,这意味着最高位对应着值 (2 -1),第二位对应着 (2 -2),依此类推。对于双精度浮点数,用 11 位表示指数,52 位表示尾数。IEEE 浮点值的格式如图 1 所示。
图 1. IEEE 754 浮点数的格式
在上图中,s标识浮点数的符号(正值或负值,正值为0,负值为1);exponent标识阶码(也称偏移量:浮点数为28-1,双精度浮点数为210-1)+指数;mantissa标识尾数。因为用科学记数法可以有多种方式来表示给定数字,所以要规范化浮点数,以便用底数为 2 并且小数点左边为 1 的小数来表示,按照需要调节指数就可以得到所需的数字。所以,例如:
² 数 1.25 可以表示为尾数为 1.01,指数为 0: (-1)0*(1.01)2*20
² 数 10.0 可以表示为尾数为 1.01,指数为 3: (-1)0*(1.01)2*23
具体实例如下:
² 0.5
0.5=(0.1)2,尾数为1.0,指数为-1。浮点数尾数共23位,右侧以0补全即:100 0000 0000 0000 0000 0000,指数部分为28-1+(-1)=(01111110)2。符号位为0。由于浮点数的尾数第一位全部是1,所有省略尾数的第一位1。0.5=(0011 1111 0000 0000 0000 0000 0000 0000)2。
² 1.5
1.5=(1.1)2,尾数为1.1,指数为0,右侧以0补全即:110 0000 0000 0000 0000 0000,指数部分为28-1+0=(01111111)2。符号位为0,省略尾数第一位的1,即1.5=(0011 1111 1100 0000 0000 0000 0000 0000)2。
² -12.5
-12.5=(-1100.1)2,尾数为1.1001,指数为3,浮点数尾数即:110 0100 0000 0000 0000 0000,指数部分为28-1+3=(10000010)2,符号位为1,省略尾数第一位的1,即-12.5=(1100 0001 0100 1000 0000 0000 0000 0000)2。
附:小数的二进制表示法
0.02625=(0.000001101)2,由于无法精确求出二进制表示,因此采用“四舍五入法”(逢1进,逢0舍)。
- 大小: 15 KB
- 大小: 11.3 KB
分享到:
相关推荐
IEEE754浮点数乘法设计,针对IEEE754标准,使用C语言对IEEE754浮点数表示和乘法计算过程进行了还原,编译器和IDE分别为GC++和DEV c++。
IEEE浮点数计算机内二进制表示显示.viIEEE浮点数计算机内二进制表示显示.viIEEE浮点数计算机内二进制表示显示.vi
2.IEEE浮点数的格式 在计算机中,浮点数的存储均采用4字节的IEEE-754格式。例如,浮点数50.0的IEEE表示形式如下:二进制: 其中,最高位表示符号,"1"表示负,"0"表示正;第23~30位表示阶码。注意:阶码是以2为...
IEEE754浮点数详解.doc
IEEE754浮点数格式详解,帮我们了解计算机中浮点数的表示
学习计算机组成原理时实现的IEEE754标准的浮点数的机器数转换器,只要填入十进制浮点数值,便可以求出单精度的IEEE754标准的机器数表示方法,反之,给出IEEE754的机器数,可以求出其对应的十进制浮点数值
解读IEEE标准754_浮点数的表示.docx
IEEE_754关于浮点数的规定★.ppt
浮点数用十六进制表示和十进制表示的相互转换
本代码实现了十进制浮点数与IEEE745标准的32位二进制浮点数的互相转换,二进制浮点数有十六进制和二进制两者表示形式,
大部分编程语言都有提供IEEE浮点数格式与算术,但有些将其列为非必需的。例如,IEEE 754问世之前就有的C语言,现在有包括IEEE算术,但不算作强制要求(C语言的float通常是指IEEE单精确度,而double是指双精确度)。 ...
解读IEEE标准754_浮点数的表示.pdf
大部分编程语言都有提供IEEE浮点数格式与算术,但有些将其列为非必需的。例如,IEEE 754问世之前就有的C语言,现在有包括IEEE算术,但不算作强制要求(C语言的float通常是指IEEE单精确度,而double是指双精确度)。 ...
十进制浮点 to IEEE754浮点 & IBM浮点转换工具 可完成十进制单精度浮点数到IEEE754浮点数、IBM浮点数的转换。
该包旨在根据 IEEE 754 标准将浮点数从十进制转换为二进制格式。 当在 MATLAB 精度限制下执行计算或当对二进制字符串感兴趣时,这很有用,例如在遗传算法中。 该包由以下四个脚本组成。 float2bin:将十进制浮点数...
对于最接近于0的数,根据IEEE-754的约定,为了扩大对0值附近数据的 表 示 能 力 , 取 阶 码 P- 1 2 6 , 尾 数此时该数的二进制表示为:0
符合IEEE-754标准的单精度浮点形数据,C51里用4字节存储一个浮点数,如用0x3F000000表示小数0.5;0xBDCCCCCD表示小数-0.1。一般我们还是习惯用十进制来表示容易看。但有的时候我们需要知道一个十进制的小数保存到...
讲解浮点数载计算机中的表示
1. 问题的提出 笔者在系统开发中采用RS485实现单片机与外围设备的通信,通信采用通用串行... 2.IEEE浮点数的格式 在计算机中,浮点数的存储均采用4字节的IEEE-754格式。例如,浮点数50.0的IEEE表示形式如下:
该资源用MIPS汇编语言实现整型数实现浮点数运算,通过MFC1和MTC1转换浮点数和整型数,不使用其他浮点数运算函数。