跳至内容

IEEE 754

float / double 的位模式、特殊值与 C 头文件。

正在准备工具…

位布局

单精度 float 共 32 位:1 位符号、8 位阶码、23 位尾数;双精度 double 共 64 位:1 位符号、11 位阶码、52 位尾数。规格化数的值为:

x=(−1)s(1+M2f)2E−b x=(-1)^s\left(1+\frac{M}{2^f}\right)2^{E-b}

EE 是阶码字段,bb 是偏置(float 127,double 1023),MM 是尾数字段。阶码全 0 且尾数非 0 为次正规数;阶码全 1 且尾数为 0 为无穷,否则为 NaN。

1.0f 的位模式是 3F800000;−0.0f 是 80000000;0.1 的 double 是 3FB999999999999A。页面同时显示大小端字节序列;位模式本身始终按高位在前表示。

使用方式

十进制模式接受普通数值和 Infinity,HEX 模式接受 4 或 8 个字节。float 转 double 会改变位模式,不能直接复用同一串字节。C 头文件用 memcpy 在数值和整数之间转换,避免严格别名问题;跨字节流传输时再按协议约定处理端序。

边界

NaN 的尾数可以携带载荷,页面只显示位模式和分类,不解释具体 NaN 编码。HEX 输入必须正好是 4 或 8 个字节,文本中的 0x、空格和常见分隔符会被忽略。