我正在对两个整数的各个位进行操作(我在 Ubuntu 机器上使用 g++ 进行编译)。
在一些中间步骤中,我将位表示为
q = 11000000000000000000000000000000
q_1 = 00000000000000000000000000000001
现在我想检查 q 和 q_1 的单位位置是否相同。所以,我正在检查(*q)&1==q_1
if 条件,它工作正常。
但是每当我想检查 q 的单位位置是 0 和 q_1 的位置是 1 时,我想我应该这样做((*q)&1==0) && (q_1==1)
,但它没有按预期工作。为了调试,我分别cout
编辑了((*q)&1==0)
和的值,(q_1==1)
它们被打印为1
. 但是, 的值((*q)&1==0) && (q_1==1)
被打印为 0。为什么?
*编辑:*在函数中,q 是通过引用传递的,所以我使用 *q 来获取值..