2016-10-13 1 views
0

어떻게 Java에서이 문제를 해결할 수 있습니까? 나는이를 입력하면바이너리 출력을 8 비트로 제한

int mask = ~0; 

System.out.println(Integer.toBinaryString(mask)); 

는 출력이된다 : 11111111111111111111111111111111 그러나 나는 단지 8 비트 (11111111)를 얻을 싶어요.

또 다른 예는,이 두 라인의

int left = mask << 7; 

System.out.println(Integer.toBinaryString(left)); 

출력은 다음과 같습니다 11111111111111111111111110000000 어떻게 마지막 8 비트를 취할 수 있습니까? (10000000).

+5

'& 0xff'를 사용하여 결과를 8 비트로 제한하려고 했습니까? –

+2

[바이트를 이진 문자열 표현으로 변환하는 방법]의 가능한 복제본 (http://stackoverflow.com/questions/12310017/how-to-convert-a-byte-to-its-binary-string-representation) –

답변

0

int 형은 4 바이트이고 모든 바이트는 8 비트이므로 정수형의 toBinaryString을 호출하면 32 비트 문자열을 얻습니다.

다음 코드를 사용하여 목표를 달성 할 수 있습니다.

int mask = ~0; 
System.out.println(Integer.toBinaryString(mask & 0xFF)); 
int left = mask << 7; 
System.out.println(Integer.toBinaryString(left & 0xFF)); 

코드가 도움이되기를 바랍니다.

관련 문제