整数の定数値表記



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型と解釈されます。