[java] Java에서 두 자리 16 진수 정수

Java에서 정수 값을 2 자리 16 진수 값으로 변경해야합니다. 감사

내 가장 큰 숫자는 63이고 가장 작은 숫자는 0입니다. 작은 값에는 선행 0을 원합니다.



답변

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

aristar가 제안한대로X 대신 사용 x 하는 경우을 사용할 필요가 없습니다 .toUpperCase().


답변

Integer.toHexString(42);

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

그러나 이것은 2 자리 이상을 제공 할 수 있습니다. (Integer는 4 바이트이므로 잠재적으로 8자를 되 찾을 수 있습니다.)

다음은 단일 바이트 값 (255 이하) 만 처리하고 있다고 확신하는 한 패딩을 얻기위한 약간의 해킹입니다.

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

Java에서 0이있는 왼쪽 패딩 정수 (십진수가 아닌 형식)의 더 많은 (그리고 더 나은) 솔루션 .


답변

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


답변

사용 Integer.toHexString(). 하나의 숫자로 끝나는 경우 앞에 0으로 채우는 것을 잊지 마십시오. 정수가 255보다 크면 2 자리 이상을 얻게됩니다.

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);
}


답변

나는 이것을 사용하여 모든 바이트에 대해 공백으로 구분 된 정수의 동등한 16 진수 값을 나타내는 문자열을 얻습니다
.EX : 4 바이트에서 260의 hex val = 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));
}


답변

GabrielOshiro에 따르면 정수 형식을 길이 8로 지정하려면 다음을 시도하십시오.

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