2013-12-11 4 views
0

Я портирую код 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 бит.

+2

Строка форматирования кода вы дали не является допустимым Java - вы на самом деле писать Java или что-то еще? –

+0

Привет, Джон, я использую XTEND, но я использую Java-класс Long. –

+0

И почему вы устанавливаете значение 0xFFFFFFFFFFFFFFFF, когда вы действительно хотите 0xFFFFFFFF? –

ответ

1

Попробуйте это:

BigInteger in = new BigInteger("FFFFFFFFFFFFFFFF", 16);   
System.out.println(String.format("%.8s", String.format("%x", in))); 
Смежные вопросы