float的指数取值范围
在计算机中,float类型通常表示单精度浮点数,也称为IEEE 754浮点数。在大多数计算机系统中,float类型使用32位(4字节)存储,其中1位用于符号位,8位用于指数位,23位用于尾数位。指数位可以表示的范围为 -126 到 +127(以2的补码表示)。
浮点数的值由以下公式计算:
值 = (-1)^符号位 * (1.尾数位) * 2^(指数位 - 偏移量)
其中,1.尾数位 表示指数位中的二进制小数点后的部分,偏移量是127。
因此,float类型的指数取值范围为 -126 到 +127。其中,指数为 -126 表示最小的非规格化数(denormalized number),指数为 -127 表示零,指数为 +127 表示无穷大或NaN(Not a Number)。
【举例】
float数值范围假设我们有一个32位的float类型的浮点数,其二进制表示为:
0 10000010 10000000000000000000000
其中,第1位表示符号位,0表示正数;接下来的8位表示指数位,即10000010,转换为十进制为130;最后的23位表示尾数位,即10000000000000000000000,转换为十进制为1.5。
根据浮点数的值计算公式,这个浮点数的值为:
值 = (-1)^0 * (1.5) * 2^(130 - 127) = 1.5 * 2^3 = 12
因此,这个浮点数的值为12。在这个例子中,指数为130,超出了float类型的指数取值范围,所以这个浮点数被表示为正无穷大。