0
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?
    }
}
4

2 に答える 2

2

bitArray[7-n] =割り当ての右側のコードはn、decimalTalのビットが設定されているかどうかをテストしています。ビットが設定されている場合(ゼロ以外)はtrueと評価され、ビットがクリアされている場合(ゼロ)はfalseと評価されます。

于 2013-03-04T01:48:49.350 に答える
0

@VGRは正しいですが、将来同様のコードに遭遇したときに小さな微妙な点を指摘します。

(decimalTal & pos) == posposのすべてのビットもdecimalTalに設定されている かどうかをテストします

(decimalTal & pos) != 0posのビットのいずれかがdecimalTalにも設定されている かどうかをテストします

この例では、posは2の累乗であるため、1ビットしか設定されていません。

于 2013-03-04T02:02:07.607 に答える