2016-10-13 159 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位,所以當你調用Integer類的BinaryString時,你會得到32位的String。

您可以使用下面的代碼來實現您的目標。

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

我希望代碼能幫助你。