protected boolean[] bitArray = new boolean[8];
protected void readNextByte() throws IOException {
latestReadByte = reader.read();
int decimtalTal = latestReadByte
for(int n= 0; n < 8; n++){
int pos = (int)Math.pow(2, n);
bitArray[7-n] = (decimalTal & pos) == pos; // THIS LINE
// what is the bitwise And in bracket == pos supposed to mean?
}
}
質問する
431 次
2 に答える
2
bitArray[7-n] =
割り当ての右側のコードはn
、decimalTalのビットが設定されているかどうかをテストしています。ビットが設定されている場合(ゼロ以外)はtrueと評価され、ビットがクリアされている場合(ゼロ)はfalseと評価されます。
于 2013-03-04T01:48:49.350 に答える
0
@VGRは正しいですが、将来同様のコードに遭遇したときに小さな微妙な点を指摘します。
(decimalTal & pos) == pos
posのすべてのビットもdecimalTalに設定されている かどうかをテストします
(decimalTal & pos) != 0
posのビットのいずれかがdecimalTalにも設定されている かどうかをテストします
この例では、posは2の累乗であるため、1ビットしか設定されていません。
于 2013-03-04T02:02:07.607 に答える