为什么float类型的变量可以表示2*2^23个有效数字而不是2^23个?

如题所述

以C语言为例给你说吧,C语言中,当定义为 unsigned float a(也就是“float a”,一般这样写就是不考虑正负的)时他只表示正的实数,这时候可以表示2^23个有效数字;
当定义为 signed float a时,他可以表示负的实数,此时他可以表示可以表示2*2^23个有效数字。
至于你说的为什么“2*2^23个有效数字”,这样说吧,C语言编译系统为float型变量提供了4个字节(计32个位)的空间,当为“unsigned float”(即声明为“float”时)时,最高你那一位存的就是0;当为“signed float”(即声明为“signed float”时)时,若为正,最高位是0;若为负,最高位是1.这样自然float类型的变量只可以表示2^23个有效数字。
不知道我这样说你明白不,要是还不明白可以说
温馨提示:答案为网友推荐,仅供参考