Параметры форматирования строки
Я портирую код C на xtend, и у меня есть 32-битное целое число. Поскольку Integer Java имеет максимальное значение 0x7FFFFFFF
Я решил использовать Long, потому что мне нужно 0xFFFFFFFF
,
Когда я распечатаю это,
Long value = 0xFFFFFFFFFFFFFFFF;
String::Format("0x%08X", value);
Я получаю output: 0xFFFFFFFFFFFFFFFF
, Я ожидаю только получить 0xFFFFFFFF
, Чтобы избавиться от ведущих Fs, я попытался сделать это:
value.bitwiseAnd(0x00000000FFFFFFFF)
Но вывод все тот же. Как я могу отформатировать его в String::Format
так что он не будет отображать первый FFFFFFFF
? Мне нужны только нижние 32 бита.
1 ответ
Решение
Попробуй это:
BigInteger in = new BigInteger("FFFFFFFFFFFFFFFF", 16);
System.out.println(String.format("%.8s", String.format("%x", in)));