ちょっと軽めに数値リテラルのカクテルをどうぞ。
System.out.println(0120);
System.out.println(0xCafe);
出力結果は
80
51966
先頭に"0x"が付くと16進数表現になるのは有名ですが、先頭に0が付くと8進数になるのはマイナーです。
8進数は知らないと嵌るので記憶にとどめて置いてください。
System.out.println(5432l);
System.out.println(5432L);
結果は
5432
5432
末尾にアルファベットのエルをつけるとlongを表します。
大文字でも小文字でも同じなのですが、見ての通り、小文字の"l"は数字の"1"と見間違え易いので大文字を使いましょう。
System.out.println(12.);
System.out.println(12.0);
System.out.println(12d);
System.out.println(12f);
末尾にピリオドがつくとdouble値になります。2番目の小数表現もdouble値です。3番目のように末尾に"D"もしくは
"d"をつけるとdoubleを表します。"F"もしくは"f"だとfloat値を表します。
System.out.println(12e0);
System.out.println(12e+0);
System.out.println(12e-0);
指数形式の表現も使えます。eの後ろに指数部を記述します。指数には+と-をつけることができます。
System.out.println(1e1);
System.out.println(1e0);
System.out.println(1e-1);
この場合の出力結果は
10.0
1.0
0.1
となります。
指数表現は16進数でも可能です。
System.out.println(0x1);
System.out.println(0x1p1);
System.out.println(0x1p0);
System.out.println(0x1p-1);
とこのように、16進数の後ろにpをつけて指数部を記述します。出力結果は
1
2.0
1.0
0.5
16進数の場合は指数は2進数での指数となるため、1で左シフト(<<演算子、要するに2倍)、
-1で右シフト(>>演算子、要するに1/2)となります。
目にする機会も少ないのですが、遭遇してうろたえないようにしておきましょう。
投稿日時 : 2007年8月1日 17:12