2013-12-11 57 views
0

我將一個C代碼移植到xtend,並且我有一個32位整數。由於Java的Integer的最大值爲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的龍類。 –

+0

當你只想要0xFFFFFFFF時,你爲什麼要將值設置爲0xFFFFFFFFFFFFFFFF? –

回答

1

試試這個:你已經給

BigInteger in = new BigInteger("FFFFFFFFFFFFFFFF", 16);   
System.out.println(String.format("%.8s", String.format("%x", in)));