Мне нужно изменить целочисленное значение на 2-значное шестнадцатеричное значение в Java. Для этого существует какой-либо способ. Благодаря
Мое самое большое число будет 63, а наименьшее - 0. Я хочу начальный нуль для небольших значений.
Мне нужно изменить целочисленное значение на 2-значное шестнадцатеричное значение в Java. Для этого существует какой-либо способ. Благодаря
Мое самое большое число будет 63, а наименьшее - 0. Я хочу начальный нуль для небольших значений.
String.format("%02X", value);
Если вы используете X
вместо X
как было предложено aristar, вам не нужно использовать .toUpperCase()
.
Integer.toHexString(42);
Javadoc: http://docs.oracle.com/javase/6/docs/api/java/lang/Integer.html#toHexString(int)
Обратите внимание, что это может дать вам более двух цифр! (Целое число - 4 байта, поэтому вы могли бы вернуть 8 символов.)
Вот немного взлома, чтобы получить дополнение, если вы абсолютно уверены, что имеете дело только с однобайтовыми значениями (255 или меньше):
Integer.toHexString(0x100 | 42).substring(1)
Много больше (и лучше) решений в Левые прописные целые числа (не десятичный формат) с нулями в Java.
String.format("%02X", (0xFF & value));
Используйте Integer.toHexString()
. Не забудьте проложить ноль, если вы только закончите с одной цифрой. Если ваше целое больше 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);
}
По 'hex' Я предполагаю, что вы имеете в виду строку шестнадцатеричных символов, для которой вы можете использовать Integer.toHexString(50). Очевидно, если ваше целое число превышает 255, вы не будете иметь шестизначное значение из двух цифр.