programing

Java에서는 16진수까지의 정수

minecode 2022. 10. 2. 14:53
반응형

Java에서는 16진수까지의 정수

자바에서 정수값을 2자리 16진수로 변경해야 합니다.무슨 방법이 있을까요?감사해요.

나의 가장 큰 숫자는 63이고 가장 작은 숫자는 0이 될 것이다.작은 값에 선행 0을 붙여야 합니다.

String.format("%02X", value);

사용하시는 경우X대신x 아리스탈이 제안한 것처럼, 당신은 그것을 사용할 필요가 없다..toUpperCase().

Integer.toHexString(42);

자바독: http://docs.oracle.com/javase/6/docs/api/java/lang/Integer.html#toHexString(int)

단, 2자리 이상의 숫자가 표시될 수 있습니다.(정수는 4바이트이므로 8자를 얻을 수 있습니다.)

여기 패딩을 얻기 위한 약간의 해킹이 있습니다.단, 당신이 싱글바이트 값(255 이하)만을 다루고 있다고 확신한다면:

Integer.toHexString(0x100 | 42).substring(1)

Java에서는 정수(비10진 형식)를 0으로 채우는 왼쪽의 솔루션이 많이 있습니다.

String.format("%02X", (0xFF & value));    

사용하세요. 한 자리 숫자만 사용할 경우 선행 0으로 패딩하는 것을 잊지 마십시오.정수가 255보다 크면 두 자리 이상입니다.

StringBuilder sb = new StringBuilder();
sb.append(Integer.toHexString(myInt));
if (sb.length() < 2) {
    sb.insert(0, '0'); // pad with leading zero if needed
}
String hex = sb.toString();

인쇄가 필요한 경우는, 다음의 순서에 따라 주세요.

for(int a = 0; a < 255; a++){
    if( a % 16 == 0){
        System.out.println();
    }
    System.out.printf("%02x ", a);
}

모든 바이트 EX에 대해 공백으로 구분된 정수의 등가 16진수 값을 나타내는 문자열을 얻으려면 이 명령을 사용합니다. 4바이트에 260의 16진수 값 = 00 00 01 04

    public static String getHexValString(Integer val, int bytePercision){
    StringBuilder sb = new StringBuilder();
    sb.append(Integer.toHexString(val));

    while(sb.length() < bytePercision*2){
        sb.insert(0,'0');// pad with leading zero
    }

    int l = sb.length(); // total string length before spaces
    int r = l/2; //num of rquired iterations

    for (int i=1; i < r;  i++){
        int x = l-(2*i); //space postion
        sb.insert(x, ' ');
    }
    return sb.toString().toUpperCase();         
}

public static void main(String []args){
    System.out.println("hex val of 260 in 4 bytes = " + getHexValString(260,4));
}

Gabriel Oshiro에 따르면, 정수 형식을 8로 하고 싶다면, 이것을 시도해 보세요.

String.format("0x%08X", 20) //print 0x00000014

언급URL : https://stackoverflow.com/questions/8689526/integer-to-two-digits-hex-in-java

반응형