C語言 -- float和int變量存儲上的差別


  今天看到一個視頻,上面寫了這樣一段程序:

#include <stdio.h>
#include <float.h>
#include <limits.h>

int main( void )
{
	printf("%d, %d\n", sizeof(float), sizeof(int));
	printf("%f, %f\n", FLT_MAX, FLT_MIN);
	printf("%d, %d\n", INT_MAX, INT_MIN);

	return 0;
}

  顯示結果如下:

 

  一開始感覺很差異,因為float和int都是四個字節,可是為什么可以表示的范圍有這么大的差別??

  看到解釋之后才明白,浮點數在內存中的存儲是以指數的形式存在的。

  就像1.1 - 1.2之間,理論上有無限個浮點數存在,如果要一一映射,在內存中是不可能實現的

  因此,內存中的浮點數以指數形式存儲,而且小數點的位數是可以變動的。

  所以,才會出現同樣是4個字節,但是表示范圍不一樣的情況!!!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM