Java | 整数リテラルの基本

Java Java
スポンサーリンク

Java 整数リテラル 練習問題 10問セット(解答・解説付き)

ここでは「整数リテラル(Java)」の理解を深めるための
👉 演習問題10問セット(全問回答+丁寧な解説付き) を用意しました。
初心者がつまずきやすいポイントを中心にしています。



✅ 第1問:基本の10進リテラル

次のコードの出力結果は何になるでしょう?

class Q1 {
  public static void main(String[] args) {
    System.out.println(123);
  }
}
Java

答え:

123

解説:
123 は普通の10進整数リテラル(=数をそのまま書いたもの)。
特別な接頭辞(0x など)がないので「10進数」として扱われます。


✅ 第2問:2進数リテラル

class Q2 {
  public static void main(String[] args) {
    System.out.println(0b1010);
  }
}
Java

答え:

10

解説:
0b1010 は「2進数」で書かれた整数リテラルです。
1×8 + 0×4 + 1×2 + 0×1 = 10
つまり10進で「10」となります。


✅ 第3問:8進数リテラル

class Q3 {
  public static void main(String[] args) {
    System.out.println(012);
  }
}
Java

答え:

10

解説:
先頭が 0 の整数は「8進数」です。
012 は「8進の12」→ 1×8 + 2 = 10(10進)
※初心者が「012=12」と思いがちなので注意!


✅ 第4問:16進数リテラル

class Q4 {
  public static void main(String[] args) {
    System.out.println(0xA);
  }
}
Java

答え:

10

解説:
0xA は16進数の「A」(A=10)。
つまり10進で10になります。
0x(または 0X)を付けると16進リテラル。


✅ 第5問:異なる表記は同じ値

class Q5 {
  public static void main(String[] args) {
    System.out.println(10);
    System.out.println(0b1010);
    System.out.println(012);
    System.out.println(0xA);
  }
}
Java

答え:

10
10
10
10

解説:
4通りの書き方でも、すべて同じ数「10」を表します。
→ 書き方が違うだけで「値は同じ」。


✅ 第6問:文字列と整数の違い

class Q6 {
  public static void main(String[] args) {
    System.out.println("10" + 5);
    System.out.println(10 + 5);
  }
}
Java

答え:

105
15

解説:

  • "10" は文字列。+ は「文字列の結合」として動く → "10" + "5""105"
  • 10 は数値。+ は「加算」 → 10 + 5 = 15
    👉 "10"(文字列)と 10(整数)は全く別物!

✅ 第7問:long 型のリテラル

class Q7 {
  public static void main(String[] args) {
    long big = 3000000000L;
    System.out.println(big);
  }
}
Java

答え:

3000000000

解説:
int の範囲を超える大きな数は L(または l)を付けて long 型として書きます。
L がないと 「整数リテラルが大きすぎます」 というコンパイルエラーになります。


✅ 第8問:アンダースコア(桁区切り)

class Q8 {
  public static void main(String[] args) {
    int num = 1_000_000;
    System.out.println(num);
  }
}
Java

答え:

1000000

解説:
_(アンダースコア)は桁区切りに使えます。
実際の値には影響しません。
1_000_000 は「1000000」と同じ。


✅ 第9問:先頭ゼロの落とし穴

class Q9 {
  public static void main(String[] args) {
    int a = 010;
    int b = 10;
    System.out.println(a + b);
  }
}
Java

答え:

18

解説:
0108進の10 → 8(10進)。
1010進の10
なので、8 + 10 = 18
👉 普段は先頭ゼロを付けない方が安全!


✅ 第10問:int のオーバーフロー

class Q10 {
  public static void main(String[] args) {
    int x = 2147483647; // int の最大値
    System.out.println(x + 1);
  }
}
Java

答え:

-2147483648

解説:
int の最大値(2,147,483,647)に 1 を足すと、
「オーバーフロー」して最小値(−2,147,483,648)に戻ります。
👉 桁あふれが起きてもエラーにはならず、値が回り込みます。


まとめ(復習ポイント)

内容書き方意味
10進数そのまま123123
2進数先頭に 0b0b101010
8進数先頭に 001210
16進数先頭に 0x0xA10
long 型末尾に L123Llong 型整数
桁区切り_1_000_0001000000
注意"123" は文字列"123" + 1"1231"数値ではない

学習アドバイス:

  • 実際に「手で打って実行」するのが理解の近道です。
  • 各リテラルを System.out.println() に入れて結果を確かめましょう。
  • int の範囲 (-2,147,483,648~2,147,483,647) も覚えておくと便利です。

Java
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました