2016-10-13 13 views
0

どのようにしてこの問題をJavaで解決できますか?バイナリ出力を8ビットに制限

int mask = ~0; 

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

私はこれを入力すると、出力は次のようになります。11111111111111111111111111111111 私はちょうど8ビット(11111111)を取得したいが。

もう一つの例は、この2行の

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バイトあり、1バイトごとに8ビットなので、IntegerクラスのtoStringを呼び出すと、32ビットのStringが得られます。

以下のコードを使用して目標を達成できます。

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

私はコードがあなたに役立つことを願っています。