当前位置: 首页 > news >正文

IEEE 754浮点数表示

浮点数组成

单精度浮点数(32位)为例说明:

十进制浮点数组成:

十进制基数(base)为10
在这里插入图片描述

二进制浮点数组成:

二进制基数(base)为2

以IEEE 754标准表示十进制数: ( 7.625 ) 10 (7.625)_{10} (7.625)10,先将其转成二进制表示: ( 111.101 ) 2 = 1.11101 ∗ 2 2 = 2 2 ∗ ( 1 + 0.11101 ) (111.101)_{2}=1.11101*2^{2}=2^{2}*(1+0.11101) (111.101)2=1.1110122=22(1+0.11101)

将以上二进制以IEEE 754标准存入内存中如下:
在这里插入图片描述

浮点数 二进制小数转十进制小数公式: s i g n ∗ 2 E ∗ ( 1 + m a n t i s s a ) sign*2^{E}*(1+mantissa) sign2E(1+mantissa) 这里的 E E E是实际指数(下面会说明 E E E的计算)而不是存储在内存中的指数。

IEEE 754 浮点数概述

在这里插入图片描述

IEEE 754 规范化浮点数

sign规定

0为正

1为负

exponent规定

指数部分有正有负,因此IEEE 754标准中采用有偏指数(The Biased exponent)表示。这意味着存储在内存中的指数部分 e e e并不是实际的指数 E E E。存储在内存中的指数 e e e为实际指数 E E E加上偏移常数(Bias)。
对于单精度浮点数(32位)为例,实际指数 E E E和存储的指数 e e e之间的关系如下:
E = e − 127 E=e-127 E=e127
这里,127是偏移常数(Bias)。偏移常数计算采用: 2 n − 1 − 1 2^{n-1}-1 2n11,这里的 n n n为存储指数的bit位数。对于单精度浮点数,指数部分占8位(即 n = 8 n=8 n=8),因此偏移常数是 2 8 − 1 − 1 = 127 2^{8-1}-1=127 2811=127

mantissa规定

通过移位操作将小数点前的值固定为1。

mantissa为23位,但是小数点前有固定为1的一位,因此尾数部分比实际多一位,共24位(significand)

IEEE 754 非规范化浮点数

非规范化浮点数表示0和接近0的值

exponent规定

exponent部分全为0。

偏移值比规范化的偏移值小1。即: 2 n − 1 − 2 2^{n-1}-2 2n12,以单精度浮点数为例 2 8 − 1 − 2 = 126 2^{8-1}-2=126 2812=126表示0。指数位全为0,则是-126。

mantissa规定

规范化浮点数表示,mantissa部分有一个省略的前导1

非规范化浮点数表示,当指数位全为0时,mantissa部分没有被省略的前导1

特殊值

Infinity值

在这里插入图片描述
在这里插入图片描述

NaN(Not a Number)值

在这里插入图片描述
在这里插入图片描述

好用的几个工具

  1. base convert
  2. float toy

http://www.mrgr.cn/news/27680.html

相关文章:

  • JAVA接入WebScoket行情接口
  • 【计算机网络】UDP网络程序
  • el-tree 父节点隐藏
  • openwebui二改界面环境搭建
  • 【ACM独立出版|高校主办】第四届信号处理与通信技术国际学术会议(SPCT 2024)
  • 机器学习: LightGBM模型(优化版)——高效且强大的树形模型
  • Linux05
  • 物联网之ESP32与微信小程序实现指示灯、转向灯
  • MyBatis中多对一关系的三种处理方法
  • “双减”政策下的课外辅导变革:少儿编程迎来新机遇
  • Java内部类,看这一篇就够了!
  • synchronized的详解、锁的升级过程和优缺点比较
  • 什么是快充协议,最常见的快充协议有哪些
  • 进程间通信之消息队列详解
  • 个人虚拟物品商城网站源码,后台试Thinkphp6.0开发的,前端是vue的。
  • 三、(JS)JS中常见的表单事件
  • 返回当前栈内最小元素
  • Dubbo SPI源码
  • 面试题总结(三) -- 内存管理篇
  • Java--图书管理系统(新版详细讲解)
  • Scrapy 2.6 Spider Middleware 爬虫页中间件基本使用
  • 基于python+django+vue的学生考勤管理系统
  • 86-java jmap分析内存
  • Java API 之集合框架进阶
  • 24年云南省下半年事业单位少有人知的10个真相
  • 【Android Studio】API 29(即Android 10)或更高版本,在程序启动时检查相机权限,并在未获取该权限时请求它