Параметры форматирования строки

Я портирую код 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)));
Другие вопросы по тегам