面试题:如何用一个表达式求绝对值?
要求不适用if, switch 和 ?: 等判断语句。
[解决办法]
#define ABS(x) (((x) >> 31) ^ (x)) - ((x) >> 31)
[解决办法]
这个面试有点偏啊!
整数的绝对值.
[code]
#define ABS(v) ((v) - ((v) >> sizeof(int) * CHAR_BIT - 1)) \
-((v) >> sizeof(int) * CHAR_BIT - 1)
[/code]