我有我的位操作課外練習的最後一個問題的麻煩。該函數應該返回1,如果任何奇數位被設置爲1 這是我到目前爲止有:位運算用C - AnyOddBit
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 &^| + << >>
我無法弄清楚如何在這些限制之內做到這一點,我真的如果有人能指引我朝着正確的方向感謝。提前致謝!
那麼如何讓比較小的值(S)? – 2012-04-23 01:05:18