次の question は、Doubleの最小値が-Double.MAX_VALUE
。これはフロートにも当てはまります(つまり、-Float.MAX_VALUE
)?
はい、 -Float.MAX_VALUE
は、大きさが最大の負の数です。 float
sはdouble
sと同じ方法で表されますが、ストレージスペースの半分(およびそれに伴う精度の低下)だけがあります。IEEE754の符号は単一ビットで表されるため、そのビットの反転は残りのビットで達成可能な全体の大きさを変更しないでください。
はい-Float.MAX_VALUE
と同じビットパターンですが、符号ビットが反転している点が異なります。これは、値を取得する別の方法です。
public class Test {
public static void main(String[] args) {
// Float.MAX_VALUE is intBitsToFloat(0x7f7fffff)
// so we set the most significant bit - the sign bit
float f = Float.intBitsToFloat((int) 0xff7fffff);
System.out.println(f == -Float.MAX_VALUE); // true
}
}
編集:私の元の答えはひどく間違っているようです。これを指摘してくれて、@ aioobeに感謝します。
代わりに、Javaコードの魔法を使ってタイトルの質問に答えます:
System.out.printf( "Float.MAX_VALUE: %,f\n", Float.MAX_VALUE );
Float.MAX_VALUE:340,282,346,638,528,860,000,000,000,000,000,000,000.000000
System.out.printf("in scientific notation: %.18g\n", Float.MAX_VALUE );
科学表記法:3.40282346638528860e + 38
System.out.printf(
"in hexadecimal floating-point number with a significand and "
+ "an exponent: %a", Float.MAX_VALUE );
仮数と指数を持つ16進浮動小数点数:0x1.fffffep127
はい、それはフロートにも当てはまります。
詳細については、こちらのマニュアルを確認してください http://download.Oracle.com/javase/7/docs/api/Java/lang/Float.html
はい、そして、あなたがリンクした質問の答えで述べられているのとまったく同じ理由で、FloatsとDoublesはIEEE754表現を使用します。