Целое число до двух цифр hex в Java


Мне нужно изменить целое значение на 2-значное шестнадцатеричное значение в Java.Is там любой способ для этого. Спасибо

мое самое большое число будет 63, а самое маленькое-0. Я хочу ведущий ноль для малых значений.

6 65

6 ответов:

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

если вы используете X вместо xкак предложил аристар, вам не нужно использовать .toUpperCase().

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.

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

использовать Integer.toHexString(). Не забудьте блокнот с нуля, если вы только в конечном итоге с одной цифрой. Если ваше целое число больше 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);
}

Я использую это, чтобы получить строку, представляющую эквивалент шестнадцатеричного значения целого числа, разделенных пробелом для каждого байта пример: шестнадцатеричный вал 260 в 4 байтах = 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));
}