私は8ビットしか必要ないので、1バイトに格納するビットマスクを持っています。私はそれを作成していたとき、私は文字列としてそれを行う(私はそれがこのように容易になるだろうと思った)、その後、私はByte.parseByte(mask,2)
でバイトにそれを変換し、私はそれが特定の値のために動作しませんが見つかりました:なぜByte.parseByte( "10000001"、2)がNFEをスローしますか?
String bits="10000001";
Byte.parseByte(bits,2);// throws a NFE
しかし、私がしなければ:問題ありません
byte b=(byte)0x81; //1000 0001
。
PS:私は、回避策を見つけbyte b=(byte)Integer.parseInt(bits, 2);
とにかく、私は
短い答え:「バイト」が署名されているためです。 –
はい、私はそれを知っています、最初の1はそれが負の数であると言います。私のポイントは問題ではないはずです。私はストリングを受け取っていれば、どうすれば-127を保存できますか? –