JAVAEE前期准备-----IEEE754标准

JAVAEE前期准备-----IEEE754标准

历史回顾

1.创建

           在六、七十年代,各家计算机公司的各个型号的计算机,有着千差万别的浮点数     表示,却没有一个业界通用的标准。这给数据交换、计算机协同工作造成了极大不便。IEEE的浮点数专业小组于七十年代末期开始酝酿浮点数的标准。在1980年,英特尔公司就推出了单片的8087浮点数协处理器,其浮点数表示法及定义的运算具有足够的合理性、先进性,被IEEE采用作为浮点数的标准,于1985年发布。 

2.创立者

         加州大学伯克利分校的数值计算与计算机科学教授威廉·卡韩被誉为“浮点数之父”。

3.别称

         该标准的全称为IEEE二进制浮点数算术标准(ANSI/IEEE Std 754-1985),又称IEC 60559:1989,微处理器系统的二进制浮点数算术(本来的编号是IEC 559:1989)

4.现行标准

        现在最新标准是“ISO/IEC/IEEE FDIS 60559:2020”。
        IEEE二进制浮点数算术标准(IEEE 754)是20世纪80年代以来最广泛使用的浮点数运算标准,为许多CPU与浮点运算器所采用。这个标准定义了表示浮点数的格式(包括负零-0)与反常值(denormal number),一些特殊数值((无穷(Inf)与非数值(NaN)),以及这些数值的“浮点数运算符”;它也指明了四种数值舍入规则和五种例外状况(包括例外发生的时机与处理方式)。

IEEE 754规定了四种表示浮点数值的方式:单精确度(32位)、双精确度(64位)、延伸单精确度(43比特以上,很少使用)与延伸双精确度(79比特以上,通常以80位实现)。

简要介绍

IEEE二进制浮点数算术标准(IEEE 754)是20世纪80年代以来最广泛使用的浮点数运算标准,为许多CPU与浮点运算器所采用。这个标准定义了表示浮点数的格式(包括负零-0)与反常值(denormal number),一些特殊数值((无穷(Inf)与非数值(NaN)),以及这些数值的“浮点数运算符”;它也指明了四种数值舍入规则和五种例外状况(包括例外发生的时机与处理方式)。

IEEE 754规定了四种表示浮点数值的方式:单精确度(32位)、双精确度(64位)、延伸单精确度(43比特以上,很少使用)与延伸双精确度(79比特以上,通常以80位实现)。

JAVA需了解内容

1.二进制形式:

    单精度浮点数float 占4字节32位
   ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210316222444652.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1ODY0MjE0,size_16,color_FFFFFF,t_70#pic_center)

在这里插入图片描述

2. 换算公式:(二进制–>float值)

    符号位值(1或-1) * (1 + 尾数位表示数值)*2^(指数位值-127);

3.具体案例:

二进制101110111000000 00000000转化为float是多少?
(-1)^s * (1+ Significand) * 2^(Exponent-127)
1.Sign∶ 1=> negative(符号位)
2. Exponent:
0111 1101(二进制)= 125(10进制)
减去偏置常数∶ 125-127 =-2
3. Significand:
1+1x2-1+ 1x2+0x23+0x2-4+0x2-5 +…=1+21+2= 1+0.5+0.25= 1.75
4.Repersents∶-1.75(十进制)*2^(-2)=-0.4375

4. 案例验证:

  // 1 011 11101 11000000000000000000000
 // 输出float类型 二进制形式
 float f = -0.4375F;
 int intBits = Float.floatToIntBits(f);
String binary = Integer.toBinaryString(intBits);
 System.out.println(binary);

5.分析:float取值范围大于long类型

          long类型最大值: 2^63-1
          float类型非最大值: 1 * (1+0) * 2^(254-127) = 1 * 1 * 2^127 = 2^127
          float类型可以取到2^127  远大于 long类型最大值 2^63-1

###6.double类型二进制形式:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

希尔伯利克亚

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值