ufix16_en15是什么数据类型和float区别

238 次阅读

本文最后更新于 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:科学计算、图形、物理模拟、大范围数值