-3

ここで何が起こっているのかわかりません。

次のデータ型のサイズをバイト単位で見つけます。

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

何!!!

double氏は、このような大きな値をわずか8バイトでどのように保存していますか???

4

3 に答える 3

4

0 から 10 100 - 1までのすべての整数を表すには、何桁の 10 進数が必要ですか?

答えは明らかです。100 桁です。

有効数字が 7 桁しか必要ない場合、 0 から 10 100 - 1までの整数値を表すには、10 進数で何桁必要ですか?

必要なのは 9 だけです。すべての数値は ABCDEFG * 10 HIとして表すことができます。

doubleほぼ同じように動作します。

于 2014-10-06T14:36:33.740 に答える
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個だけです。最初のものもフォーマットによって暗示されています)。

于 2014-10-06T14:49:56.990 に答える