申し分なく、私は Java でプログラミングを行って 3 年になりますが、今では非常に経験豊富だと思います。しかし、Java SE のソース コードを調べていると、予期しないことに遭遇しました。
でclass
Double
:
public static final double MIN_NORMAL = 0x1.0p-1022; // 2.2250738585072014E-308
public static final double MIN_VALUE = 0x0.0000000000001P-1022; // 4.9e-324
私はこれを予期していなかったので、それが何を意味するのかわかりません。ご存じない場合は、これらの数値の後、減算演算子の前にあるp
andについて言及しています。接尾辞を使用して数字を強制的に、 、 などP
にすることができることは知っていますが、やに遭遇したことはありません。Java APIを確認しましたが、言及されていません。Javaプリミティブ数値リテラル修飾子の完全なリストはどこかにありますか? それらをすべて知っている人はいますか?double
long
float
p
P
参考までに、私が使用または遭遇したものを以下に示します。その目的が疑問符付きの太字で示されているもの (#
それぞれの制限内の任意の数を表します):
サフィックス:
#
= 32 ビット整数int
#L
= 64 ビット整数long
#l
= 別の 64 ビット整数l
?#f
= 32 ビット浮動小数点float
#F
= 別の 32 ビット浮動小数点数float
?#d
= 64 ビット浮動小数点double
#D
= 別の 64 ビット浮動小数点数double
?#e#
= 科学表記法#E#
= 別の科学表記法?#p
= ?#P
= ?- もう?
プレフィックス:
0b#
= バイナリ (ベース 2) リテラル0B#
= 別のバイナリ (ベース 2) リテラル?0#
= 8 進数 (基数 8) のリテラル#
= 10 進数 (基数 10) のリテラル0x#
= 16 進数 (基数 16) のリテラル0X#
= 別の 16 進数 (基数 16) のリテラル?- もう?
その他 (これらのサフィックスまたはプレフィックスはありますか? ):
(byte)#
= 8 ビット整数byte
(short)#
= 16 ビット整数short
(char)#
- 32 ビット文字char