整数の定数値表記
Javaでは数値リテラルを10進数(decimal)、8進数(octal)、16進数(hexadecimal)として表記できます。
public class ExamIntegerLiteral {
public static void main(String args[]) {
int i1 = 10;
int i2 = 010;
int i3 = 0xFF;
System.out.println(i1);
System.out.println(i2);
System.out.println(i3);
}
}
<実行結果>
コンソールに
10
8
255
と表示されます。
i1に代入されているのは10進数の10ですが、
i2に代入されている数値は、8進数として解釈されてます。これは0で始まる数値は8進数と解釈されるためです。
i3に代入されている数値は、16進数で、0xもしくは0Xで始まる数値は16進数として解釈されます。
public class ExamIntegerLiteral { public static void main(String args[]) { long l1 = 10L; long l2 = 010l; long l3 = 0xFFL; System.out.println(l1); System.out.println(l2); System.out.println(l3); } }
<実行結果>
実行結果は同じです。
整数を表す数値の最後にLまたはlを付けるとlong型と解釈されます。
浮動小数点の場合は、数値の最後にFまたはfをつけるとfloat型、何も無ければ、double型と解釈されます。