Java에서 Int를 바이트로 변환

Mohammad Irfan 2023년10월12일
  1. Java에서 Int에서 바이트로 변환
  2. Java에서 Int에서 바이트로 변환 및 그 반대로
  3. Java에서 Int에서 바이트로의 부호 없는 변환
  4. Java 8을 사용하여 Int에서 바이트로 변환 및 그 반대로
  5. Java에서 byteValue() 메서드를 사용하여 Int에서 바이트로
Java에서 Int를 바이트로 변환

이 튜토리얼에서는 Java에서 int를 바이트로 변환하는 방법을 소개합니다.

Java에서 int와 byte는 모두 기본 유형이며 숫자 값을 저장하는 데 사용됩니다. 둘 다 부호 있는 값과 부호 없는 값을 저장하는 데 사용되지만 저장 범위는 다릅니다. 바이트 범위는 -128 ~ 127이고 int 범위는 -2,147,483,648 ~ 2,147,483,647입니다. 따라서 int가 바이트 유형보다 큰 값을 저장할 수 있음을 분명히 알 수 있습니다.

int를 byte로 변환하는 동안 메모리로 인해 일부 데이터가 손실됩니다. 몇 가지 예를 살펴보겠습니다.

Java에서 Int에서 바이트로 변환

이 예제에서는 캐스팅하여 int를 바이트로 변환하고 int 값이 바이트 범위를 초과하는지 확인합니다. 그렇다면 음수 값으로 변환됩니다. 값이 바이트 범위보다 크면 음수로 변환됨을 의미합니다. 따라서 큰 값을 바이트 형식으로 변환할 때 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에서 바이트로 변환 및 그 반대로

int 유형을 바이트 유형으로 변환하려면 명시적 유형 캐스팅을 사용해야 합니다. 그러나 바이트를 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에서 Int에서 바이트로의 부호 없는 변환

위의 모든 예에서 부호 변환을 수행했지만 부호 없는 변환을 원하면 아래 코드를 사용하십시오. 여기서 int 값과 함께 & 0xFF 코드를 사용하여 부호 없는 변환을 얻었습니다. 아래의 예를 참조하십시오.

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을 사용하여 Int에서 바이트로 변환 및 그 반대로

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에서 바이트로

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