1. ホーム
  2. java

[解決済み] バイトをバイナリの文字列表現に変換する方法

2022-10-31 17:41:54

質問

例えば、1バイトのビットは B10000010 という文字列にビットを割り当てるにはどうすればよいのでしょうか? str を文字通りに、つまり str = "10000010" .

Edit

バイナリファイルからバイトを読み込んで、バイト配列に格納しました。 B . を使っています。 System.out.println(Integer.toBinaryString(B[i])) 問題は

(a) ビットが(左端の)1から始まる場合、出力は正しくありません。 B[i] を負のint値に変換してしまうため、出力は正しくありません。

(b) もしビットが 0 で始まる場合、出力は無視されます。 0 を無視し、例えば B[0] が 00000001 とすると、出力は 1 ではなく 00000001

どのように解決するのですか?

使用方法 Integer#toBinaryString() :

byte b1 = (byte) 129;
String s1 = String.format("%8s", Integer.toBinaryString(b1 & 0xFF)).replace(' ', '0');
System.out.println(s1); // 10000001

byte b2 = (byte) 2;
String s2 = String.format("%8s", Integer.toBinaryString(b2 & 0xFF)).replace(' ', '0');
System.out.println(s2); // 00000010

デモ .