IEEE-754浮点数标准

定义

  IEEE754标准规定小数的表示形式为V=(-1)S*M*2E

  S为符号位

  M为尾数

  E为阶码

  一个单独的符号位编码S,符号位为0,表示正数,符号位为1表示负数。

  k位的阶码字段exp=ek-1.....e 编码阶码E。

  n位小数字段frac=fn-1......f0 编码尾数M,但是编码出来的值也依赖于阶码字段的值是否等于0。

俩种浮点数

  IEEE754定义了俩种浮点数,分为32位单精度浮点数,64位双精度浮点数。

  32位精度浮点数使用 1 位表示符号位,8位表示阶码,23位表示尾数。

  64位精度浮点数使用 1 位表示符号位,11位表示阶码,52位表示尾数。

4种表现形式

  IEEE754将小数表示为4种形式,规格化小数,非规格化小数,无穷,NAN,以下使用单精度来说明

规格化小数 s 非0 非 255 f
非规格化小数 s 0 f
无穷 s 11111111 0
NAN s 11111111 f

具体表示

  IEEE754 定义的小数表示为 V=(-1)S*M*2E   只要计算出M和E即可。

  规格化小数

    阶码计算方式:E=e-Bias,e=ek-1.....e0  ,Bias=2k-1 -1。

    小数计算方式:小数字段等于0.fn-1......f0,尾数M=1+f,即尾数M默认以1开始。

  非规格化小数

    阶码计算方式:E=1-Bias,e=0,Bias=2k-1 -1。

    小数计算方式:小数字段等于0.fn-1......f0。

  特殊值

    阶码全为1的是特殊值,当小数域全0时是无穷,s=1,表示负无穷,s=0表示正无穷。

    阶码全为1,小数域不是全0时,表示NAN,即非数字,比如 无穷 - 无穷,根号负数。

    以下使用8位表示浮点数。S=1,K=4,M=3,Bias=2k-1-1=7

描述 位表示           指数

e E 2E
                      小数

f M
                                   值   

2E x M       V   十进制

0

最小的非规格化数

最大非规格化数


0 0000 000

0 0000 001

0 0000 010

0 0000 011

.......

0 0000 111


0         -6       1/64

0         -6       1/64

0         -6       1/64

0         -6       1/64

0   -6       1/64


0/8        0/8

1/8        1/8

2/8        2/8

3/8        3/8

7/8        7/8


 0/512        0            0

 1/512        1/512     0.001953

 2/512        1/256     0.003906

 3/512        3/512     0.005859

 7/512         7/512    0.013672


最小的规格化数


0 0001 000

0 0001 001

....

0 0110 110

0 0110 111

0 0111 000

0 0111 001

0 0111 010

.......

0 1110 110


1         -6       1/64

       1   -6    1/64

        6   -1    1/2

       6   -1    1/2

       7    0    1

       7    0    1

       7    0    1

      14     7    128


0/8         1/8

    1/8    9/8

    6/8     14/8  

   7/8   15/8 

   0      8/8

   1/8     9/8

    2/8   10/8

   6/8   14/8


8/512        8/512  0.015625

           9/512     9/512   0.017578

        448/512    448/512  0.875  

        480/512  480/512  0.9375

        512/512  512/512  1

        576/512  576/512  1.125

        640/512  640/512  1.25

   224    224    224      


最大规格化数

0 1110 111        14   7   128     7/8   15/8          240    240    240 

无穷大

0 1111 000           

  

原文地址:https://www.cnblogs.com/shuiyonglewodezzzzz/p/11062536.html

时间: 2024-10-08 05:22:12

IEEE-754浮点数标准的相关文章

IEEE 754 浮点数的表示精度探讨

IEEE 754 浮点数的表示精度探讨 前言 从网上看到不少程序员对浮点数精度问题有很多疑问,在论坛上发贴询问,很多热心人给予了解答,但我发现一些解答中有些许小的错误和认识不当之处.我曾经做过数值算法程序,虽然基本可用,但是被浮点数精度问题所困扰:事情过后,我花了一点时间搜集资料,并仔细研究,有些心得体会,愿意与大家分享,希望对IEEE 754标准中的二进制浮点数精度及其相关问题给予较为详尽的解释.当然,文中任何错误由本人造成,由我承担,特此声明. 1. 什么是IEEE 754标准? 目前支持二

IEEE 754 浮点数在计算机中的表示方法

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

IEEE 754浮点数表示标准

二进制数的科学计数法 C++中使用的浮点数包括采用的是IEEE标准下的浮点数表示方法.我们知道在数学中可以将任何十进制的数写成以10为底的科学计数法的形式,如下 其中显而易见,因为如果a比10大或者比1小都能够再次写成10的指数的形式,如 然而要想在二进制的世界中将数字写成以10为底的科学计数法的形式,着实有点麻烦,因为你首先需要将二进制的数先化成10进制的表示方法,然后才能写成科学计数法的形式.但是如果我们稍微变通一下科学计数法的标记方法,问题就变得特别的简单了.之所以数学上使用的科学计数法选

IEEE 754标准浮点数

一.IEEE 754浮点数的表示 浮点数数学表示: 符号位(sign):决定该浮点数的正负 尾数(significand):二进制小数,范围在[1,2)或者[0,1)中 阶码(exponent):对浮点数加权,权重为2的E次幂 单精度浮点数:在单精度的浮点数中,符号位编码为1位二进制位,阶码编码为为8位二进制位,尾数编码为23位二进制位: 双精度浮点数:在双精度浮点数中,符号位编码为1位二进制位,阶码编码为为11位二进制位,尾数编码为52位二进制位: 二.浮点数编码知识储备 <1>浮点数阶码的

如何理解IEEE 754标准对Java中float值和double值的规定

在Java语言中,我们可以使用float和double这两种基本数据类型来表示特定的数据. 这两种数据类型,本质上是浮点数(floating-point number),浮点是一种对于实数的近似值数值表现法,由一个有效数字加上幂数来表示. 之所以使用浮点数,是因为计算机在使用二进制运算的过程中,无法将所有的十进制小数准确的换算为二进制,只能使用近似值来表示. 使用浮点数表示数值的方法很多,在Java中,和C语言一样,float和double都采用了使用最为广泛的IEEE 754标准. IEEE

浮点数标准IEEE 754相关材料

下面的内容不是必须掌握的,是为了满足一些好奇心强同学的需要.IEEE 754目前为C标准所支持,而且许多硬件均支持,可以说目前浮点数处理基本是IEEE 754的天下.http://zh.wikipedia.org/wiki/IEEE_754 中文材料1.4 IEEE 浮点运算标准 - 华东师范大学数学系这个比较简略,http://www.pediy.com/kssd/pediy06/pediy6610.htm 该文中有几个更具体的例子,本人未仔细核实http://people.uncw.edu/

IEEE 754标准

IEEE 754-1985 was an industry standard for representing floating-point numbers in computers, officially adopted in 1985 and superseded in 2008 by IEEE 754-2008. During its 23 years, it was the most widely used format for floating-point computation. I

IEEE 二进制浮点数的表示

朋友在谈一个物流相关的项目,是以前项目的一个延续,涉及到后台的扩展,手机端的App,外加两个App的对接的蓝牙打印机.这个项目前后说了一个多月了吧,最近才草拟了协议.项目本来不复杂,但是客户却如此的拖延.我觉得客户做事好慢,而朋友觉得是自己的就是自己的,不是自己的急也没有用.不断的打电话询问客户,可能最后还被压价,反而更没办法做了.他其实比我还急,但是人家的心态好.的确凡事急不得. 浮点数 在 C 语言中,有两种存储浮点数的方式,分别是 float 和 double ,当然了还有long dou

IEEE二进制浮点数算术标准学习

看到有网上有个项目是要求将浮点数用二进制表示出来,需要用IEEE754标准,查了查维基和深入理解计算机系统,重新学习了一遍浮点数在计算机中的表示和内存中的存储, 先简单的做个笔记,后面需要更深入的理解. IEEE754定义了四种表示浮点数的方式:单精度(32bit),双精度(64bit),延伸单精度(43bit以上),延伸双精度(79bit以上),后两者很少使用,这里讲的是前面两种. 用二进制来表示浮点数分三个部分,以下都已32bit的单精度为例,双精度类似可以推算出来: 三部分为:符号位(si

IEEE 802.1X标准

1.介绍 802.1X是一个IEEE标准,通过对用户进行基于端口的安全认证和对密钥的动态管理,从而实现保护用户用户的位置隐私和身份隐私以及有效保护通信过程中信息安全的目的. 在802.1X协议中,只有具备了以下三个元素才能够完成基于端口的访问控制的用户认证和授权. 1.客户端 一般安装在用户的工作站上,当用户有上网需求时,激活客户端程序,输入必要的用户名和口令,客户端程序将会送出连接请求. 2.认证系统 在以太网系统中认证交换机,其主要作用是完成用户认证信息的上传.下达工作,并根据认证的结果打开