[QT]浮点数转换成4个字节的十六进制(IEEE 754标准)

IEEE 754 是浮点数运算的国际标准,它定义了如何在计算机中存储和表示实数。最常见的两种格式是单精度(32位)和双精度(64位)。下面我们以 单精度(32位) 为例,讲解如何将十进制数 15.945 转换为其 IEEE 754 表示。

IEEE 754 单精度格式

符号位(S):1 位,0 表示正数,1 表示负数。

指数位(E):8 位,采用偏移量(bias)127存储,即存储值 = 实际指数 +127。

尾数位(M):23 位,存储的是规格化数的小数部分(隐含整数部分为 1)。

所以一个规格化单精度浮点数的实际值为:

计算过程

首先,我们需要将 15.945 转换为二进制形式(整数部分和小数部分分别转换)。

1.整数:

复制代码
	15÷2=7 余1
    7÷2=3 余1
    3÷2=1 余1
    1÷2=0 余1(从下往上读1111)

2.小数:采用"乘 2 取整"法,顺序读取整数位:

复制代码
	0.945 × 2 = 1.89 → 取整数 1,剩下 0.89 (bit1)
	0.89 × 2 = 1.78 → 1 (bit2)
	0.78 × 2 = 1.56 → 1 (bit3)
	0.56 × 2 = 1.12 → 1 (bit4)
	0.12 × 2 = 0.24 → 0 (bit5)
	0.24 × 2 = 0.48 → 0 (bit6)
	0.48 × 2 = 0.96 → 0 (bit7)
	0.96 × 2 = 1.92 →1 (bit8)
	0.92 × 2 = 1.84 →1 (bit9)
	0.84 × 2 = 1.68 →1 (bit10)
	0.68 × 2 = 1.36 →1 (bit11)
	0.36 × 2 = 0.72 →0  (bit12)
	0.72 × 2 = 1.44 → 1 (bit13)
	0.44 × 2 = 0.88 → 0 (bit14)
	0.88 × 2 = 1.76 → 1 (bit15)
	0.76 × 2 = 1.52 → 1 (bit16)
	0.52 × 2 = 1.04 → 1 (bit17)
	0.04 × 2 = 0.08 → 0 (bit18)
	0.08 × 2 = 0.16 → 0 (bit19)
	0.16 × 2 = 0.32 → 0 (bit20)
	0.32 × 2 = 0.64 → 0 (bit21)
	0.64 × 2 = 1.28 → 1 (bit22)
	0.28 × 2 = 0.56 → 0 (bit23)

所以 0.945 的二进制小数(前 24 位)为:

bash 复制代码
1 1 1 1 0 0 0 1 1 1 1 0 1 0 1 1 1 0 0 0 0 1 0(从上到下)

3.合并在一起就是

bash 复制代码
1 1 1 1 .1 1 1 1 0 0 0 1 1 1 1 0 1 0 1 1 1 0 0 0 0 1 0)(整数部分范围是1到2,所以小数点左移3位,小数部分取23位)所以指数是3
1.1 1 1 1 1 1 1 0 0 0 1 1 1 1 0 1 0 1 1 1 0 0 0

4.组成32位(1位符号位+8位指数位+23位尾数)

bash 复制代码
0 10000010  11111110001111010111000

5.数据拆分

bash 复制代码
0100 0001 0111 1111 0001 1110 1011 1000
4    1      7   8    1     E   B    8

所以32位数为 0x417F1EB8

相关推荐
慧都小项3 天前
当边缘AI上产线:QtitanDocking 如何让工业 HMI 实现多视图协同
人工智能·qt·ui·边缘计算·qt6.3
Quz3 天前
QML SwipeDelegate 滑动委托
qt
Quz3 天前
QML 列表中的四种委托:ItemDelegate、CheckDelegate、RadioDelegate、SwitchDelegate
qt
实心儿儿3 天前
Qt — 显示类控件
qt
江湖人称菠萝包4 天前
【Qt】《Qt 5.9 C++开发指南》笔记-Chapter9-Qt Charts
笔记·qt·qt5
扶尔魔ocy4 天前
【QT android】环境安装及第一个QT项目
qt·andriod开发
江湖人称菠萝包4 天前
【Qt】《Qt 5.9 C++开发指南》笔记-Chapter10-Data Visualization
笔记·qt·qt5
Cx330❀4 天前
Qt 常用控件属性与底层机制详解:从窗口半透明、浮点数陷阱到 QSS 与焦点策略
qt·ui·图形渲染
Quz4 天前
QML DelegateChooser:多条件组合与按列选择委托
qt
Quz4 天前
QML DelegateChooser:按角色选择委托与按索引选择委托
qt