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?
}
}
答案 0 :(得分:2)
bitArray[7-n] =
赋值右侧的代码正在测试是否设置了decimalTal的位n
。如果该位置1(非零),则计算结果为true;如果该位清零(零),则计算结果为假。
答案 1 :(得分:0)
@VGR是正确的,但是当你在将来遇到类似的代码时指出一个小的微妙之处:
(decimalTal & pos) == pos
测试 all pos中的位是否也设置为decimalTal
(decimalTal & pos) != 0
测试是否 pos中的任何位也设置为decimalTal
在这个例子中,pos只有1位设置,因为它是2的幂,所以它并不重要。