热门标签 | HotTags
当前位置:  开发笔记 > 开放平台 > 正文

关于浮点数在内存当中的表示

1.IEEE754标准电气和电子工程师协会(IEEE)定义了几种存储浮点数的标准。最常用的就是单精度和双精度。单精度数据格式采用总共32位(4字节)来存储一个浮点表示法的实数。

1.IEEE754标准

  电气和电子工程师协会(IEEE)定义了几种存储浮点数的标准。最常用的就是单精度和双精度。
  单精度数据格式采用总共32位(4字节)来存储一个浮点表示法的实数。符号占用1位,指数占用8位(采用余127码),尾数使用23位(无符号数)。
  双精度数据格式采用总共64位(8字节)来存储一个浮点表示法的实数。符号占用1位,指数占用11位(采用余1023码),尾数使用52位(无符号数)。

2.单精度表示方法

  下面以单精度为例讨论浮点数的表示方法:
这里写图片描述

符号位S:占用1位,0表示正,1表示负;

指数位E:指数为占用8位,采用余127码系统,可表示的值为0~255,其中,0和255(即8位全部为1)是两个特殊值,后面会详细讨论。姑且认为指数位可表示的值为1~254,对应的指数范围是-126~127.

尾数位M:尾数位占用23位,表示小数位,范围从0~2^23-1.

一个实数存储为浮点数格式的步骤是:

  1. 在S中存储符号(0或1)

  2. 将数字转换为二进制

  3. 规范化

  4. 找到E,M的值

  5. 连接S,E,M

例子:写出十进制-5.75的127余码表示。

  1. 符号位为1,S=1;

  2. 5.75=101.11=1.011122

  3. E=2+127=129,M=0111

    因此,5.75的单精度表示方法为:

1 10000001 10110000000000000000000

类似的,对于-161.875有:

161.875=10100001.111=1.0100001111*2^7
S=1;
E=7+127=134=10000110;
M=0100001111;
//单精度表示为:
1 10000110 0100001111;

3.几个特殊情况


  1. 指数E&#61;0时&#xff0c;有效数最高位为0&#xff0c;而不再是1&#xff0c;只有当0<E<281
    时&#xff0c;有效数最高位为1。当指数位为0&#xff0c;且位数位为0时&#xff0c;表示&#43;-0。

  2. 指数E&#61;281且尾数部分为0&#xff0c;则表示正无穷大或者负无穷大&#xff0c;视符号位而定。

  3. 指数E&#61;281且尾数部分不为0&#xff0c;则表示这不是一个数。

百度百科对这几条规则解释的很清楚&#xff0c;参见IEEE754

4.上溢和下溢

由上面的规则可以推导出32位浮点数的表示范围。
正最大值&#xff1a;

SEM
01111111011111111111111111111111

Nmax&#61;&#43;(1224)×2&#43;128


正最小值&#xff1a;
SEM
00000000100000000000000000000001

Nmax&#61;&#43;(121)×2127


负最大值&#xff1a;



Nmax&#61;(1224)×2&#43;128


负最小值&#xff1a;



Nmax&#61;(121)×2127


推荐阅读
  • 探讨如何使用工具或方法来自定义百度网盘的提取码,以提高文件分享的安全性和便捷性。 ... [详细]
  • 摘要:为了解决下载速度慢的问题,本文介绍了一种高效的下载方法,并提供了详细的步骤和工具推荐。通过使用百度网盘分享功能,可以显著提高文件传输效率。 ... [详细]
  • 爱奇艺视频下载指南
    随着百度在视频领域的不断扩展,爱奇艺的内容库日益丰富,涵盖了大量新番动画、电影、电视剧和综艺节目。本文将详细介绍如何通过爱奇艺客户端下载视频,帮助用户轻松实现离线观看。 ... [详细]
  • TCP长连接设备管理平台:架构与功能概览
    本文介绍了基于TCP长连接的设备管理平台的设计理念、技术选型及主要功能模块。最初,项目旨在实现简单的协议测试,但随着需求扩展,逐步演变为一个完整的前后端分离系统。 ... [详细]
  • 脑机接口(BCI)技术正逐步将科幻变为现实,从帮助听障人士恢复听力到使瘫痪者重新站立,甚至可能将多年的学习过程压缩至瞬间。本文探讨了这一前沿技术的现状、挑战及其未来前景。 ... [详细]
  • 本文介绍了一种解决二元可满足性(2-SAT)问题的方法。通过具体实例,详细解释了如何构建模型、应用算法,并提供了编程实现的细节和优化建议。 ... [详细]
  • Python入门:第一天准备与安装
    本文详细介绍了Python编程语言的基础知识和安装步骤,帮助初学者快速上手。涵盖Python的特点、应用场景以及Windows环境下Python和PyCharm的安装方法。 ... [详细]
  • 自己用过的一些比较有用的css3新属性【HTML】
    web前端|html教程自己用过的一些比较用的css3新属性web前端-html教程css3刚推出不久,虽然大多数的css3属性在很多流行的浏览器中不支持,但我个人觉得还是要尽量开 ... [详细]
  • 本文详细解析了如何使用Python的urllib模块发起POST请求,并通过实例展示如何爬取百度翻译的翻译结果。 ... [详细]
  • 百度搜索结果链接提取工具 UrlGetter V1.43
    该工具专为获取百度搜索引擎的结果页面中的网址链接而设计,能够解析并转换为原始URL。通过正则表达式匹配技术,精准提取网页链接,并提供详细的使用说明和下载资源。 ... [详细]
  • Unity编辑器插件:NGUI资源引用检测工具
    本文介绍了一款基于NGUI的资源引用检测工具,该工具能够帮助开发者快速查找和管理项目中的资源引用。其功能涵盖Atlas/Sprite、字库、UITexture及组件的引用检测,并提供了替换和修复功能。文末提供源码下载链接。 ... [详细]
  • 创建U盘启动盘以进行系统安装
    本文详细介绍如何使用U盘制作启动盘,以便在计算机系统故障时进行重装或修复。通过U盘启动盘,用户可以更便捷、高效地完成操作系统安装,尤其适用于无光驱的现代设备。 ... [详细]
  • 本文介绍了多个关于JavaScript的书籍资源、实用工具和编程实例,涵盖从入门到进阶的各个阶段,帮助读者全面提升JavaScript编程能力。 ... [详细]
  • 本文探讨了如何在日常工作中通过优化效率和深入研究核心技术,将技术和知识转化为实际收益。文章结合个人经验,分享了提高工作效率、掌握高价值技能以及选择合适工作环境的方法,帮助读者更好地实现技术变现。 ... [详细]
  • 本文详细介绍了在企业级项目中如何优化 Webpack 配置,特别是在 React 移动端项目中的最佳实践。涵盖资源压缩、代码分割、构建范围缩小、缓存机制以及性能优化等多个方面。 ... [详细]
author-avatar
陨落灬星辰
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有