对于double和long long那个范围大 - CSDN博客

1,238 阅读1分钟
原文链接: blog.csdn.net

先看double

        double是计算机使用的一种数据类型。比起单精度浮点数(float),double(双精度浮点数)使用 64 位(8字节) 来储存一个浮点数。 它可以表示十进制的15或16位有效数字,负值取值范围为 -1.7976E+308 到 -4.94065645841246544E-324,正值取值范围为 4.94065645841246544E-324 到 1.797693E+308。

        double在计算机中的存储方法:无论是单精度还是双精度在存储中都分为三个部分:

  1. 符号位(Sign) : 0代表正,1代表为负
  2. 指数位(Exponent):用于存储科学计数法中的指数数据,并且采用移位存储
  3. 尾数部分(Mantissa):尾数部分

        正是它不同于long long的存储方法,使得它虽然只有64位但是可以比同样是64位的long long 类型取值范围大很多。

对于long long

        64位的范围应该是[-2^63 ,2^63],既-9223372036854775808~9223372036854775807。

        它的存储方法就是按位存储。有符号位就有一位符号位,没有符号位就64位全部来存储这个数。