本文最后更新于 2026年5月4日。
ufix16_En15 是一种16位无符号定点数(Fixed-point),核心区别在于:定点数小数点位置固定,float 是浮点数,小数点位置动态浮动。
一、ufix16_En15 含义与结构
- u:无符号(unsigned)
- fix:定点数(fixed-point)
- 16:总位宽16位
- En15:小数部分占15位,整数部分仅1位
- 二进制格式:
[1位整数].[15位小数] - 数值范围:0 ≤ x ≤ 1.999969482421875
- 精度(步长):固定为 2⁻¹⁵ ≈ 0.00003051759
- 二进制格式:
二、与 float (IEEE 754 单精度) 核心区别
| 特性 | ufix16_En15 (定点) |
float (浮点) |
|---|---|---|
| 位数 | 16位 (2字节) | 32位 (4字节) |
| 结构 | 1位整数 + 15位小数 | 1符号位 + 8指数位 + 23尾数位 |
| 范围 | 极小 (0 ~ 2) | 极大 (±1.18×10⁻³⁸ ~ ±3.4×10³⁸) |
| 精度 | 固定均匀 (2⁻¹⁵) | 动态 (大数精度低、小数精度高) |
| 运算 | 快 (整数ALU单周期) | 慢 (需FPU多周期) |
| 硬件 | 成本低 (无FPU) | 成本高 (需浮点单元) |
| 溢出 | 易溢出 | 极难溢出 |
三、适用场景
ufix16_En15:嵌入式、DSP、FPGA、硬件控制、信号归一化(0~1)float:科学计算、图形、物理模拟、大范围数值