programing

Java 정수를 16 진 정수로 변환

coolbiz 2021. 1. 16. 10:13
반응형

Java 정수를 16 진 정수로 변환


정수에서 숫자를 다른 정수로 변환하려고합니다. 16 진수로 인쇄하면 원래 정수와 동일하게 보입니다.

예를 들면 :

20을 32로 변환 (0x20)

54를 84로 변환 (0x54)


public static int convert(int n) {
  return Integer.valueOf(String.valueOf(n), 16);
}

public static void main(String[] args) {
  System.out.println(convert(20));  // 32
  System.out.println(convert(54));  // 84
}

즉, 원래 숫자를 16 진수로 취급 한 다음 10 진수로 변환합니다.


가장 쉬운 방법은 Integer.toHexString(int)


int를 hex 로 변환하는 또 다른 방법 입니다.

String hex = String.format("%X", int);

대문자 Xx소문자로 변경할 수 있습니다 .

예:

String.format("%X", 31)결과 1F.

String.format("%X", 32)결과 20.


int orig = 20;
int res = Integer.parseInt(""+orig, 16);

다음과 같이 시도해 볼 수 있습니다 (종이에 수행하는 방식).

public static int solve(int x){
    int y=0;
    int i=0;

    while (x>0){
        y+=(x%10)*Math.pow(16,i);
        x/=10;
        i++;
    }
    return y;
}

public static void main(String args[]){
    System.out.println(solve(20));
    System.out.println(solve(54));
}

예를 들어 다음과 같이 계산합니다. 0 * 16 ^ 0 + 2 * 16 ^ 1 = 32 및 4 * 16 ^ 0 + 5 * 16 ^ 1 = 84


String input = "20";
int output = Integer.parseInt(input, 16); // 32

다음은 양의 정수 의 헥사 표현 만 인쇄하려는 경우 최적화됩니다 .

비트 조작, ASCII 문자의 utf-8 값 및 StringBuilder끝에서 a 반전을 피하기위한 재귀 만 사용하므로 매우 빠릅니다 .

public static void hexa(int num) {
    int m = 0;
    if( (m = num >>> 4) != 0 ) {
        hexa( m );
    }
    System.out.print((char)((m=num & 0x0F)+(m<10 ? 48 : 55)));
}

다음과 같이하십시오.

public static int specialNum(num){

    return Integer.parseInt( Integer.toString(num) ,16)
}

특수 10 진수 정수를 16 진수로 변환해야합니다.

참조 URL : https://stackoverflow.com/questions/9321553/java-convert-integer-to-hex-integer

반응형