我的最后一个问题是我的家庭作业练习的最后一个问题。如果任何奇数位设置为 1,该函数应该返回 1。这是我到目前为止所拥有的:
int anyOddBit(int x) {
return (x & 0xaaaaaaaa) != 0;
}
这工作得很好,但我不允许使用这么大的常数(只允许 0 到 255、0xFF)。我也不允许使用!=
具体来说,这是我仅限于使用的:
Each "Expr" is an expression using ONLY the following:
1. Integer constants 0 through 255 (0xFF), inclusive. You are
not allowed to use big constants such as 0xffffffff.
2. Function arguments and local variables (no global variables).
3. Unary integer operations ! ~
4. Binary integer operations & ^ | + << >>
我不知道如何在这些限制内做到这一点,如果有人能指出我正确的方向,我将不胜感激。提前致谢!