Целое число до двух цифр hex в Java
Мне нужно изменить целое значение на 2-значное шестнадцатеричное значение в Java.Is там любой способ для этого. Спасибо
мое самое большое число будет 63, а самое маленькое-0. Я хочу ведущий ноль для малых значений.
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.
использовать
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)); }