thinking in java 中一条语句的疑惑?该如何处理

thinking in java 中一条语句的疑惑?byte bt (byte) rand.nextInt()BitSet bb new BitSet()for (int

thinking in java 中一条语句的疑惑?
byte bt = (byte) rand.nextInt();
BitSet bb = new BitSet();
for (int i = 7; i >= 0; i--)
if (((1 << i) & bt) != 0)
bb.set(i);
else
bb.clear(i);
 在该代码块中if(((1 << i) &bt)!= 0)是用来判断什么条件?

[解决办法]

探讨

我想知道的是哪条if语句使得set保存了什么数据?