1

私は C# を学習しており、C# の実際のデータ型の範囲を論理的に視覚的に表現しようとしています。

整数を移動し、float と double のデータ型になりました。

  1. 8 ビット (1 バイト)、sbyte、-128 ~ 127。
  2. 8 ビット (1 バイト)、バイト、0 ~ 255。
  3. 16 ビット (2 バイト)、short、-32,768 ~ 32,767。
  4. 16 ビット (2 バイト)、ushort、0 ~ 65535。
  5. 32 ビット (4 バイト)、int、-2,147,483,648 ~ 2,147,483,647。
  6. 32 ビット (4 バイト)、uint、0 ~ 4,294,967,295。
  7. 64 ビット (8 バイト)、ロング、-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
  8. 64 ビット (8 バイト)、ulong、0 ~ 18,446,744,073,709,551,615。

msdn での float および double データ型のサイズへの参照は次のとおりです。

フロート: http://msdn.microsoft.com/en-us/library/b1e65aza(v=vs.110).aspx

ここに画像の説明を入力

ダブル: http://msdn.microsoft.com/en-us/library/678hzkk9.aspx

ここに画像の説明を入力

では、上記の番号付きリストのように実際の数値範囲を指定する慣習を守ろうとすると、これら 2 つの範囲は実際には何を表しているのでしょうか?

4

2 に答える 2

8

範囲は実際には -infinity から +infinity です。

最大の有限 floatは 340282346638528859811704183484516925440 です。これは 2 128 –2 128–24です。

The largest finite double is 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368. This is 2 1024 –2 1024–53 .

于 2013-07-20T10:10:31.750 に答える
6

範囲は、簡潔にするために「指数形式」で表されます。たとえば、+1.7e+308 は、17 の後に 307 個のゼロが続くことを意味します。

1,700,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000 000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000 000,000,000,000,000,000待ち取り

そのため、このような大きな数には指数形式が適しています。そして、同じことが非常に小さな数にも当てはまります。

また、Jon Skeet によるこの読み物もご覧ください。

于 2013-07-20T06:57:16.473 に答える