必要なビットマスクは 8 ビットだけなので、1 バイトで格納するビットマスクがあります。私がそれを作成しているとき、私はそれを文字列として行い(この方法で簡単になると思いました)、それを でバイトに変換しますがByte.parseByte(mask,2)
、特定の値では機能しないことがわかりました:
String bits="10000001";
Byte.parseByte(bits,2);// throws a NFE
しかし、もしそうなら:
byte b=(byte)0x81; //1000 0001
問題はない。
PS: 回避策を見つけましたbyte b=(byte)Integer.parseInt(bits, 2);
が、とにかく 8 ビットを 1 バイトに変換できない理由を知りたいです。