【Java】整数型(int,long,byte,short)一覧まとめ!最大値も丸わかり

こんにちは!侍エンジニアブログ編集部のシホです!

みなさんはデータ型をうまく使いわけられていますか?変数を宣言するときに変数名と同時に変数のデータ型を指定する必要がありますよね。

ですが、変数の種類や値の大きさによって使うデータ型が違うのでつまづく方も多いと思います。そこで今回は、

  • データ型がそもそも何なのか
  • 整数型の使い分け
  • 最小値と最大値の出し方
  • 練習問題

と実践できる形式で紹介していきたいと思います。ぜひマスターしてみてください!

なお、Javaの記事については、こちらにまとめています。

目次

データ型とは?

まず、データ型の説明をします。データ型とは、データの種類のことをいいます。データには年齢のような数字を表す場合もあれば、名前などの文字を表す場合もあります。

また、数字の場合は小さい数字だけではなく、莫大な数字を表す場合もります。このように、Javaではデータの種類や大きさに合わせてデータ型が決まっています。

では、データ型はどのように分類されるのか見てみましょう。

種類データ型ビット数
真偽値boolean1ビット真偽値,falseまたはtrue
文字型char 16ビットUnicode文字 ¥u0000~¥uFFFF
整数型byte8ビット-128~127
short16ビット-32768~32767
int32ビット-2147483648~2147483647
long64ビット-9223372036854775808~9223372036854775807
浮動小数型float32ビット単精度浮動小数点数
double64ビット倍精度浮動小数点数

データ型には、真偽値を表すboolean、文字を表すchar、整数を表すbyte,short,int,long、浮動小数を表すfloat,doubleにわかれています。

データ型はそれぞれ扱われる値の範囲が決まっていて、表したいデータの種類と値によって適した型を使用します。

【データ型のまとめ】
データの種類と大きさにあったデータ型を使用しよう!

整数型の特徴

では、整数型のbyte、short、int、longについて詳しくみてみましょう。整数型は、文字どおり整数を表したい時に使用します。

ただし、byteはデータの大きさを表すときに使います。整数を表したい時は、short,int,longを使いましょう。

この3つの違いは、表現できる値の範囲だけです。使用頻度は「int>long>short」となるので、基本はintを使って、intでまかなえない場合はlong、shortを使うという感じで覚えておけば大丈夫です。

【整数型のまとめ】
・byteはデータの大きさを代入するときに使う
・short、int、longの違いは表現できる値の範囲だけ
・基本的にはint型を使う

型の最小値と最大値

では次に、型の最小値と最大値の出し方を紹介します。以下の表は、整数型ごとに最小値と最大値を取得する方法をまとめたものです。

MIN_VALUEで最小値、MAX_VALUEで最大値が取得できます。

整数型最小値最大値
byteByte.MIN_VALUEByte.MAX_VALUE
shortShort.MIN_VALUEShort.MAX_VALUE
intInteger.MIN_VALUEInteger.MAX_VALUE
longLong.MIN_VALUELong.MAX_VALUE

では、int型最小値と最大値を確認してみましょう。

【コード】

//int型の最小値と最大値を確認する
public class MinMaxValue {
    public static void main(String[] args) {
        System.out.println("intの最小値=" + Integer.MIN_VALUE);
        System.out.println("intの最大値=" + Integer.MAX_VALUE);
    }
}

【結果】

intの最小値=-2147483648
intの最大値=2147483647

練習問題

問題

int型の最小値、最大値の確認を参考にして、
byte,short,long型の最小値と最大値を出してみよう!

答え

【コード】

//byteの最小値と最大値
public class MinMaxValue {
    public static void main(String[] args) {
        System.out.println("byteの最小値=" + Byte.MIN_VALUE);
        System.out.println("byteの最大値=" + Byte.MAX_VALUE);
        System.out.println("shortの最小値=" + Short.MIN_VALUE);
        System.out.println("shortの最大値=" + Short.MAX_VALUE);
        System.out.println("longの最小値=" + Long.MIN_VALUE);
        System.out.println("longの最大値=" + Long.MAX_VALUE);
    }
}

【結果】

byteの最小値=-128
byteの最大値=127
shortの最小値=-32768
shortの最大値=32767
longの最小値=-9223372036854775808
longの最大値=9223372036854775807

型の変換について

ここまででJavaの整数型について、一通り理解が深まったのではないでしょうか。それぞれ保持できるデータの種類や大きさが違うことがわかりましたね。

しかしこれらの型を使用していく上で、型を変換しなければならないケースや違う型同士で計算をしたりすることも発生するでしょう。

その際どのような挙動をするのかを理解しておくことは非常に重要ですよ!以下のリンクで様々なケースでの型変換を扱っています。ぜひ読んでみてください。

【Java入門】キャスト(型変換)とアップキャスト、ダウンキャスト
更新日:2024年3月1日

最大値を超えたらどうなるの?

型の最大値を超えてしまった場合いったいどうなってしまうのか?気になる人も多いのではないでしょうか。

実際試してみましょう。先ほど使用した最大値を取得する「Integer.MAX_VALUE」。これで最大値を取得し、さらに1を足したらどうなるでしょうか?

【コード】

int i = Integer.MAX_VALUE;
System.out.println(i + 1);

【結果】

-2147483648

実行すると、結果はマイナスになってしまいました!最大値「2147483647」から、いってん「-2147483648」とint型の最小値になってしまいましたね。

これを桁溢れやオーバーフローと呼びます。数字の最大値を超えて、一周回って最低値になってしまうわけです。

逆に最低値からさらに1を値を引いたら、最大値になってしまいます。(こちらはアンダーフローと呼ばれています)不具合の元にもなりますので注意しましょう。

まとめ

いかがでしたでしょうか。データ型は扱える値の範囲が決まっています。

変数に整数を代入したいときは、データの種類と大きさにあった整数型を使用しましょう!

整数型の範囲がわからなくなったときは、ぜひこの記事を参考にしてみてくださいね!

この記事を書いた人

1990年生まれ。長崎県出身。趣味は歌・登山・暗闇ボクシング。
最近HTMLとCSSの勉強を再スタートしました!
「初心者の方にもわかりやすく」をモットーにライターとして日々精進中です★

目次