C++ 从基本数据类型说起

坚强是说给别人听的谎言 提交于 2020-08-10 13:30:36

前言

        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);//316


目前测试的例子是double类型的最大值,用128存储会产生截断,真实的存储空间需要316

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!