IEEE 754 标准数值类型及分类

整数 Integer

整数是没有小数部分的值, 在计算机内通常有两种表示方式:

其中补码(Two’s Complement)用于表示负数

通过补码, 可以使得加减运算统一, 溢出检测更加简单

浮点数 Floating-point

浮点数用于表示带小数的实数, 尤其适合科学计算和近似表示很大或很小的数值. IEEE 754 定义了浮点数的标准格式, 类似科学计数法:

PLAINTEXT
value = (-1)^(sign) x mantissa x 2^(exponent)
Click to expand and view more

浮点数由三部分组成:

  1. 符号位 sign: 0/1代表正负
  2. 阶码 exponent: 通常使用偏移表示法
  3. 尾数 fraction/mantissa: 小数部分

常见浮点数类型:

浮点数的分类 Categories

以 64 精度为例

部分位数描述
符号位(sign)10 表示正数,1 表示负数
阶码(exponent)11偏移量(bias)为 1023,表示数值的量级
尾数(fraction / mantissa)52有效数字,不包括隐藏位

浮点数的表示公式:

PLAINTEXT
value = (-1)^sign x (1 + fraction) x 2^(exponent - bias)
Click to expand and view more
类别 (categories)符号位 (sign)阶码 (exponent)尾数 (fraction / mantissa)描述
正常数0 或 1[1, 2046]1.f 范围: [1.0, 2-ε)阶码非全0且非全1, 尾数隐含最高位1
非正规数0 或 1全 00.f 范围: (0, 1.0-ε]阶码全0, 尾数非全0, 无隐藏位1, 接近0
±00 或 1全 0全 0阶码全0, 尾数全0
±∞0 或 1全 1 [2047]全 0阶码全1, 尾数全0
NaN (qNaN / sNaN)0 或 1全 1 [2047]非全 0阶码全1, 尾数非全0, 表示无效或未定义运算

注意: 非正规数的阶码虽然为全0, 但是计算时约定为 1-bias = 1-1023 = -1022, 而不是像正规数那样 exponent - bias

Start searching

Enter keywords to search articles

↑↓
ESC
⌘K Shortcut