介于定点数表示的大小的局限性,因此引入浮点数,其大小是由其阶码决定的。

在IEEE754标准中,浮点数主要有三种类型:单精度浮点数,双精度浮点数,临时浮点数

浮点数的组成:尾数,符号数,阶码

在IEE754标准中,阶码是用移码来表示的,而:
移码 = 真值 + 偏置值(此处偏置值为2**(n-1)-1)

在IEE7554标准中,用真值+偏置值,在-127,-128会变成全0或者全1,因此真值的正常范围是-126~127

分类:

关于浮点数之间==的IEEE754标准问题_浮点数

注意,对于单精度浮点数是有一个隐藏的最高位1,在小数点前显示,如0.11D -> 1.1 * 2^(-1)B

在写C++的时候

#include <iostream>
void Test() {
double n1 = 2.3;
float n2 = 2.3;
if (1 + 1.3 == n1) std::cout << "Double" << std::endl;
else if (1 + 1.3 == n2) std::cout << "Float" << std::endl;
}
int main() {
Test();
return 0;
}

运行结果如下

关于浮点数之间==的IEEE754标准问题_单精度_02


可知当没有设定数值类型的时候,系统自动的判定为double类型