我无法想象这里发生了什么。
我以字节为单位找到以下数据类型的大小:
char:1
int:4
float:4
double:8
long long int:8
Now long long int max size is 9223372036854775807
whereas double max size is 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.000000
什么!!!
Mr. double如何以8字节存储如此大的值???
答案 0 :(得分:3)
我需要多少个十进制数来表示0到10之间的每个整数 100 - 1?
答案应该是显而易见的:100位数。
如果我只需要7位有效数字,我需要多少个十进制数来表示0到10 100 - 1之间的整数值?
您只需要9.每个数字都可以表示为ABCDEFG * 10 HI 。
double
以大致相同的方式工作。
答案 1 :(得分:1)
double max的二进制表示形式为整数(!),如下所示:
11111111111111111111111111111111111111111111111111111
000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000
最后有批次零(准确地说是1024个零)。在那之前,1024个零是53个领先的零。为什么53个?因为这是有效位的数量,您可以存储在double
中。
重要的是,所有这些零实际上并不存储在double中。它们由指数暗示。只存储了53个(好的,只有52个;第一个也是格式暗示的。)
答案 2 :(得分:0)
幅度的上限由有效数的组合决定,有效数决定数字的精确度,它的 exponent 决定了它的大小。该表示类似于科学(n *(10 ** m))表示法,除了它在基数2中。
许多很多基本10个整数和分数在IEEE FP表示法中是不可表示的,这对新开发人员来说一直是问题的反复出现。