Java のプリミティブ データ型をよく理解しようとしています。私はすでに概要を理解しており、符号付き整数値が Java に格納される方法と、バイト、ショート、整数、またはロングのデータ型の範囲を伝える/計算する方法を理解しています。
したがって、Java データ型 int を見ると、それが 32 ビット符号付きの値であることがわかっているため、int 型が格納できる異なる「状態」の数と、そのデータ型の範囲 (つまり 2^ -2^31 から +(2^31)-1 またはおおよそ -2e+9 から +2e+9 の範囲になります)。
ただし、データ型 float を見ると、助けが必要です。Java の float データ型は (int と同様に) 32 ビット型であることを理解しているため、合計 2^32 の異なる状態も格納できると想定します。ただし、この表 ( http://www.javacamp.org/javaI/primitiveTypes.html ) に示されている数値を見ると、このデータ型が約 -3e から範囲の浮動小数点数を格納する方法がわかりません。 +38 から 3e+38 (これはすでに int がカバーできる範囲よりもはるかに広い範囲です) に、その間のすべての単精度浮動小数点 10 進数を加えて、わずか 32 ビットで。
浮動小数点数がどのように格納されているか、同じビット数内で int よりも多くの情報を格納できるように見える理由を説明してください (私にはほとんど不可能に感じます)。たぶん、あなたは私に良い読み物を指摘したり、私が論理的な間違いを犯した場所を示したりすることができます.