2013-12-11 6 views
0

C 코드를 xtend로 포팅하고 32 비트 정수를 사용합니다. Java의 Integer는 최대 값이 0x7FFFFFFF이므로, 0xFFFFFFFF이 필요하므로 Long을 사용하기로 결정했습니다. 문자열 형식 지정 옵션

나는 그것을 밖으로 인쇄

,

Long value = 0xFFFFFFFFFFFFFFFF; 
String::Format("0x%08X", value); 

나는 output: 0xFFFFFFFFFFFFFFFF을 얻고있다. 나는 단지 0xFFFFFFFF을 얻기를 기대하고 있습니다.

value.bitwiseAnd(0x00000000FFFFFFFF) 

을하지만 출력은 여전히 ​​동일합니다 : 가 선두 Fs를 제거하기 위해, 나는이 일을 시도했다. String::Format에서 어떻게 서식을 지정하면 처음에 FFFFFFFF이 표시되지 않습니까? 나는 더 낮은 32 비트 만 필요로한다.

+2

문자열 서식 코드는 유효 자바는 아니다 - 당신이 실제로 자바 또는 뭔가를 쓰고있다? –

+0

안녕하세요, Jon, 저는 XTEND를 사용하고 있지만 Java의 Long 클래스를 사용합니다. –

+0

실제로 0xFFFFFFFF 만 필요할 때 값을 0xFFFFFFFFFFFFFFFF로 설정하는 이유는 무엇입니까? –

답변

1

이 시도 : 당신이 준

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