如何在不移位的情况下获取整数的第 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.
假设我有一个 16 位整数 x
,我想知道 x
的第 i
位是 0 还是 1。我不是能够使用移位,但我可以使用长度为 16 的预定义数组 twoToThe
,其中 twoToThe[j]
包含 2 的 j
次方。我想我可以使用按位布尔运算来完成我正在寻找的东西,但我不确定如何去做。有什么建议吗?
知道了。您可以检查 x & twoToThe[i]
是否等于 0。如果是,则 x
的第 i
位必须为 0。如果它不是 0,那么 x
的第 i
位是 1.