IEEE 754 标准

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/520e0692-8364-4983-8fb3-a391fd2888c6/Untitled.png

float 短浮点数

以短浮点数 float 为例

  1. 最高位为符号位,占用一位的空间

  2. 阶码为8位,以移码的方式存储,偏置量127,阶码表示的范围为$[1 \sim (2^8) - 1]$,为什么偏置量不是128?范围不是0-255?因为全1用来表示无穷大,全0表示非规格化数

  3. 尾数数值位为23位,在这里采用了隐藏位策略,由于我们规定了尾数最高位为1,也就是说数值位的第一位总会是1,所以我们可以采用23位来表示24位的数(我们把最高位的数值位隐藏了起来)。即不在23位数值位中存储这个 1 。

  4. 偏置值,对于 float 数而言,偏置值为 127 $(2^7-1)$, 其中,全 1 表示无穷大,至于为什么是7次方不是 8 次方,回顾移码的定义),表示阶码的移动。在存储浮点数阶码之前,要将偏置值加到阶码的真值上。比如阶码为 3 ,那么移码表示的阶码为: 127 + 3 = 130(82H)。

    计组-定点数表示和运算⭐️

规格化后,短浮点数的真值为 $(-1)^s \times 1.M \times 2^{E-127}$

短浮点数偏置量为127

长浮点数偏置量为1023

IEEE 754 浮点数的范围

float的精度和取值范围_AlbertS Home of Technology-CSDN博客_float范围

首先要知道,阶码 E 的真值范围是1 ~ 254

在短浮点数表示中,阶码为0~255,但是正常情况下,要表示无穷大以及其他的一些特殊值,0和255留作它用,所以E正常范围为1~254, 再减去偏置量127,所以为-126~127