美文网首页
IEEE浮点标准

IEEE浮点标准

作者: d3f59bfc7013 | 来源:发表于2018-07-02 00:04 被阅读0次

IEEE二进位浮点数算术标准

浮点数是指用符号位(正数为0,复数为1),指数,有效数字位来表示的小数。有单精度(32)和双精度表示(64)。

[图片上传失败...(image-d17584-1530461049799)]

浮点数0.75单精度示例

  • 计算符号位
    0.75是正数,所以符号位为0.

  • 计算阶码

    • 0.75用二进制表示是0.11,转为科学计数法就是1.1*2-1(Note:必须将浮点数转为1.xxx*2e然后来计算阶码。)
    • 上一步将0.75转为二进制的科学计数法1.1*2-1,指数是-1,通过-1来计算阶码,IEEE标准是这样规定的,8位代表阶码为,最大值是11111111=255,这里255的1/2,即01111111=127表示0,那么1.1*2-1的指数-1是用126=01111110来表示,所以阶码=01111110=126
  • 计算有效数字

    从计算阶码一步0.75用二进制科学计数法1.1*2-1,1.1小数点之后的则是有效数字即1。那么有效数字23位=10000000000000000000000

0.75的单精度浮点表示如下

image

我们也可以从上图计算出这个表示的浮点数是什么。

  • 符号位为0,那么是正数
  • 阶码是01111110=126,因为127其实是代表0,那么126就是代表-1(126-127=-1),也就是指数是-1。(记住阶码的作用是用来表示指数,通过阶码可以求得指数)
  • 有效数字是10000000000000000000000
  • 那么该浮点数就是
    1.(有效数字)*2指数=1.10000000000000000000000*2-1=0.110000000000000000000000(二进制)=0.75(10进制)

浮点数-4.75单精度示例

  • -4.75是负数,符号位为1
  • 4.75转为二进制=100.11,二进制科学计数法表示=1.0011*22,所以指数是2,因为阶码01111111=127表示0,所以2是用2+127=129来表示=10000001,阶码即是=10000001
  • 1.0011*22,所以有效数字是0011.

所以-4.75的浮点数表示是

-4.75的浮点数表示

可以通过C程序来测试一下:

#include <stdio.h>
#include<string.h>

int main()
{
    float data;
    unsigned long buff;
    int i;
    char s[34];
    data=(float)0.75;
    memcpy(&buff,&data,4);
    //逐一提取出每一位
    for(int i=33; i>=0; i--)
    {
        if(i==1||i==10)
        {
            s[i]='-';
        }
        else
        {
            if(buff%2==1)
            {
                s[i]='1';
            }
            else
            {
                s[i]='0';
            }
            buff/=2;
        }
    }
    s[34]='\0';
    printf("%s\n",s);
}

0.75浮点数表示:


image

-4.75浮点数表示


image

相关文章

  • IEEE浮点标准

    IEEE二进位浮点数算术标准 浮点数是指用符号位(正数为0,复数为1),指数,有效数字位来表示的小数。有单精度(3...

  • 浮点数处理

    本文首发于个人博客 浮点数表达 IEEE754标准是用于规范浮点数运算的IEEE标准,用于解决浮点数标准混乱的问题...

  • 浅谈IEEE754标准

    首先说一说什么是IEEE754标准,IEEE 754 标准是IEEE二进位浮点数算术标准的标准编号,好吧,说了当白...

  • 理解C语言浮点数的存储

    IEEE-754标准 目前世界上使用最为广泛的小数表示方法是浮点数表示法,而浮点数通用的算术标准是IEEE-754...

  • 小朋友学C语言(43):浮点数的深入分析

    IEEE二进制浮点数算术标准(IEEE 754)是20世纪80年代以来最广泛使用的浮点数运算标准,为许多CPU与浮...

  • 在JavaScript中修复“0.1 + 0.2 = 0.300

    由于JavaScript 对Math使用IEEE 754 标准,因此它使用64位浮点数。这在执行浮点(十进制)计算...

  • 计算机专业课877——计算机组成原理

    计算机组成原理 IEEE754浮点数标准:IEEE754标准规定 各种周期整理:指令周期:是指从取指令、分析指令到...

  • IEEE-754浮点标准简介

    IEEE-754浮点标准[1] 直至20世纪70年代末, 实数(十进制数)被不同的计算机厂商表示成不同的二进制形式...

  • 基本类型:数值之浮点数类型

    浮点数类型 操作与整数类似 浮点数受到17位有效数字的限制 IEEE的国际标准来限定浮点数有效数字,不像pytho...

  • Go语言之浮点类型(小数类型)六

    Go语言支持两种浮点型数:float32 和 float64。这两种浮点型数据格式遵循 IEEE 754 标准: ...

网友评论

      本文标题:IEEE浮点标准

      本文链接:https://www.haomeiwen.com/subject/pmxkuftx.html