栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

浮点数 IEEE754表示

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

浮点数 IEEE754表示

2. 表示结构

 

3. IEEE754单精度浮点数---- 十进制 以float为例

1 公式

s阶符 E阶码 M尾数 对应位数 1 8 23

 2 例子1 41A4C000

step1: 转换成二进制 1000001101001001100000000000000 

step2: S 0 E 10000011 131 M 01001001100000000000000 

step3: 131-127 4 1.010010011右移4位--- 10100.10011得到10100.10011 20.59375

step4: 20.59375 * 2^4

参考链接 【计算机组成原理】IEEE754单精度浮点数转十进制_哔哩哔哩_bilibili

4. 十进制 ---- IEEE754单精度浮点数格式 以float为例

1 与上面的公式相反 阶码E要加上127

2 例子 263.3

step1 100000111.010011001...

step2 符号位为正数 S 0

step3 计算E, 100000111转换成1.M的形式得到1.M*2^8 127 8 135 转换成二进制10000111 则E 10000111

step4: 计算M 去掉1.M中的1 M 00000111010011001

step5: 得到0 10000111 00000111010011001

参考 【计算机组成原理】十进制转IEEE754单精度浮点数格式_哔哩哔哩_bilibili

5. python中的math.frexp 用于获取给定数字的尾数和指数

scalar 2.3008604
flt_exponent0 math.frexp(scalar)[0]
print(flt_exponent0) # 尾数 0.5752151
flt_exponent math.frexp(scalar)[1]
print(flt_exponent) # 阶码 2

注 math.frexp的尾数部分为0

step1 2.3008604转换成 IEEE 754标准十进制为  1.1504302 * 2^1

step2 由于math.frexp指定尾部部分为0 所以尾数对应的二进制表示需要右移一位 对应阶码 1

step3 0.5752151* 2^2 即尾数为0.5752151 阶码为2

6.  python中的sys.float_info.mant_dig  浮点数的精度 53

参考链接 单精度与双精度是什么意思 有什么区别 - 知乎

【在线工具】

在线进制转换 在线进制转换-IEE754浮点数16进制转换

在线IEEE 754计算器 IEEE 754 Calculator

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/267197.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号