【发布时间】:2020-08-10 03:25:50
【问题描述】:
假设我有一个 16 位整数 x,我想知道 x 的第 i 位是 0 还是 1。我无法使用位移,但我可以使用长度为 16 的预定义数组 twoToThe,其中 twoToThe[j] 是 j 的 2 次方。我想我可以使用按位布尔运算来完成我正在寻找的东西,但我不确定如何去做。有什么建议吗?
【问题讨论】:
假设我有一个 16 位整数 x,我想知道 x 的第 i 位是 0 还是 1。我无法使用位移,但我可以使用长度为 16 的预定义数组 twoToThe,其中 twoToThe[j] 是 j 的 2 次方。我想我可以使用按位布尔运算来完成我正在寻找的东西,但我不确定如何去做。有什么建议吗?
【问题讨论】:
知道了。你可以检查x & twoToThe[i]是否等于0。如果是,那么x的第i-位一定是0。如果不是0,那么i- x 的第 1 位是 1。
【讨论】: