web-dev-qa-db-ja.com

Javaの2桁の16進数の整数

Javaで整数値を2桁の16進数値に変更する必要があります。これには方法があります。ありがとう

私の最大数は63、最小数は0です。小さな値には先行ゼロが必要です。

71
Salih Erikci
_String.format("%02X", value);
_

Xの代わりにxを使用する場合は、 aristarの提案どおり を使用する場合、.toUpperCase()を使用する必要はありません。

133
GabrielOshiro
Integer.toHexString(42);

Javadoc: 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進形式) でのより多くの(およびより良い)ソリューション。

27
ziesemer
String.format("%02X", (0xFF & value));    
24
aristar

Integer.toHexString() を使用します。 1桁で終わる場合は、先頭にゼロを追加することを忘れないでください。整数が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();
14
Asaph

印刷する必要がある場合は、これを試してください:

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

私はこれを使用して、バイトごとにスペースで区切られた整数の同等の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));
}