C++ 從基本數據類型提及

前言ide

        int 在32位和64位操做系統,都是四個字節長度。爲了能編寫一個在32位和64位操做系統都能穩定運行的程序,建議採用std::int32_t 或者std::int64_t指定數據類型。*與long隨操做系統子長變化而變化外,其餘的都固定不變(32位和64位相比)測試


        整型溢出和浮點型的範圍。 float的範圍爲-2^128 ~ +2^128,也即-3.40E+38 ~ +3.40E+38;double的範圍爲-2^1024 ~ +2^1024,也即-1.79E+308 ~ +1.79E+308。精度 float和double的精度是由尾數的位數來決定的。浮點數在內存中是按科學計數法來存儲的,其整數部分始終是一個隱含着的「1」,因爲它是不變的,故不能對精度形成影響。 float:2^23 = 8388608,一共七位,這意味着最多能有7位有效數字,但絕對能保證的爲6位,也即float的精度爲6~7位有效數字; double:2^52 = 4503599627370496,一共16位,同理,double的精度爲15~16位。操作系統


測試代碼內存

  double dTestData = +1.79E+308;
  char szDouleArray[128] = { 0 };  
  sprintf(szDouleArray, "%f", dTestData);
  int nDoubleArrayLen = strlen(szDouleArray);//316it

目前測試的例子是double類型的最大值,用128存儲會產生截斷,真實的存儲空間須要316
相關文章
相關標籤/搜索