读书人

面试题:怎么用一个表达式求绝对值

发布时间: 2013-01-28 11:49:56 作者: rapoo

面试题:如何用一个表达式求绝对值?
要求不适用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]

读书人网 >C语言

热点推荐