Java で Int を Byte に変換する

Mohammad Irfan 2023年10月12日
  1. Java での整数からバイトへの変換
  2. Java での整数からバイトへの変換およびその逆
  3. Java での整数からバイトへの符号なし変換
  4. Java 8 を使用した整数からバイトへの変換およびその逆
  5. Java の byteValue()メソッドを使用した Int to Byte
Java で Int を Byte に変換する

このチュートリアルでは、Java で int をバイトに変換する方法を紹介します。

Java では、int と byte はどちらもプリミティブ型であり、数値を格納するために使用されます。どちらも符号付き値と符号なし値を格納するために使用されますが、格納範囲は異なります。バイト範囲は -128〜127 で、int 範囲は -2,147,483,6482,147,483,647 です。したがって、明らかに、int はバイト型よりも大きな値を格納できることがわかります。

int を byte に変換しているときに、メモリが原因で一部のデータが失われます。いくつかの例を見てみましょう。

Java での整数からバイトへの変換

この例では、キャストによって int を byte に変換し、int 値が byte の範囲外を超えているかどうかを確認します。含まれている場合は、負の値に変換されます。これは、値がバイト範囲よりも大きい場合、負に変換されることを意味します。したがって、大きな値をバイト型に変換すると、int 型とは異なる結果が得られます。

public class SimpleTesting {
  public static void main(String[] args) {
    int a = 127; // byte max positive range
    System.out.println("int value = " + a);
    byte b = (byte) a;
    System.out.println("byte value = " + b);
    a = 130; // Out of positive byte range
    System.out.println("int value = " + a);
    b = (byte) a;
    System.out.println("byte value = " + b);
  }
}

出力:

int value = 127
byte value = 127
int value = 130
byte value = -126

Java での整数からバイトへの変換およびその逆

int 型を byte 型に変換するには、明示的な型キャストを使用する必要があります。ただし、バイトを int に変換するために、明示的なキャストは必要ありません。Java はこれを暗黙的に行います。以下の例を参照してください。

public class SimpleTesting {
  public static void main(String[] args) {
    int a = 230;
    System.out.println("int value = " + a);
    byte b = (byte) a;
    System.out.println("byte value = " + b);
    a = b;
    System.out.println("int value = " + a);
  }
}

出力:

int value = 230
byte value = -26
int value = -26

Java での整数からバイトへの符号なし変換

上記のすべての例で符号変換を行いましたが、符号なし変換が必要な場合は、以下のコードを使用してください。ここでは、& 0xFF コードと int 値を使用して、符号なし変換を取得しました。以下の例を参照してください。

public class SimpleTesting {
  public static void main(String[] args) {
    int a = 230;
    System.out.println("int value = " + a);
    byte b = (byte) a;
    System.out.println("byte value = " + b);
    a = b & 0xFF;
    System.out.println("int value = " + a);
  }
}

出力:

int value = 230
byte value = -26
int value = 230

Java 8 を使用した整数からバイトへの変換およびその逆

Java 8 以降のバージョンを使用している場合は、Byte クラスの toUnsignedInt() メソッドを使用して、符号なし変換を取得します。以下の例を参照してください。

public class SimpleTesting {
  public static void main(String[] args) {
    int a = 230;
    System.out.println("int value = " + a);
    byte b = (byte) a;
    System.out.println("byte value = " + b);
    a = Byte.toUnsignedInt(b);
    System.out.println("int value = " + a);
  }
}

出力:

int value = 230
byte value = -26
int value = 230

Java の byteValue()メソッドを使用した Int to Byte

Integer クラスの byteValue()メソッドを使用して、変換後のバイト値を取得することもできます。このメソッドは符号付きの値を返します。したがって、署名された結果を取得する場合にのみ使用してください。以下の例を参照してください。

public class SimpleTesting {
  public static void main(String[] args) {
    int a = 230;
    System.out.println("int value = " + a);
    Integer i = a;
    byte b = i.byteValue();
    System.out.println("byte value = " + b);
  }
}

出力:

int value = 230
byte value = -26

関連記事 - Java Int

関連記事 - Java Byte