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



