如何在不移位的情况下获取整数的第 i 位?

How to get the i-th bit of an integer without bit shifting?

假设我有一个 16 位整数 x,我想知道 x 的第 i 位是 0 还是 1。我不是能够使用移位,但我可以使用长度为 16 的预定义数组 twoToThe,其中 twoToThe[j] 包含 2 的 j 次方。我想我可以使用按位布尔运算来完成我正在寻找的东西,但我不确定如何去做。有什么建议吗?

知道了。您可以检查 x & twoToThe[i] 是否等于 0。如果是,则 x 的第 i 位必须为 0。如果它不是 0,那么 x 的第 i 位是 1.