面试题:如何用一个表达式求绝对值?

BrightPi it  2013-01-22 03:41:58
要求不适用if, switch 和 ?: 等判断语句。
...全文
148 4 点赞 打赏 收藏 举报
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
mymtom 2013-01-22
这个面试有点偏啊! 整数的绝对值.

#define ABS(v) ((v) - ((v) >> sizeof(v) * CHAR_BIT - 1)) \
    -((v) >> sizeof(v) * CHAR_BIT - 1)
  • 打赏
  • 举报
回复
mymtom 2013-01-22
这个面试有点偏啊! 整数的绝对值.

#define ABS(v) ((v) - ((v) >> sizeof(int) * CHAR_BIT - 1)) \
    -((v) >> sizeof(int) * CHAR_BIT - 1)
  • 打赏
  • 举报
回复
mymtom 2013-01-22
这个面试有点偏啊! 整数的绝对值.

#define ABS(v) ((v) - ((v) >> sizeof(int) * CHAR_BIT - 1)) \
    -((v) >> sizeof(int) * CHAR_BIT - 1)
  • 打赏
  • 举报
回复
sduxiaoxiang 2013-01-22
#define ABS(x) (((x) >> 31) ^ (x)) - ((x) >> 31)
  • 打赏
  • 举报
回复
相关推荐
发帖
C语言
加入

6.5w+

社区成员

C语言相关问题讨论
申请成为版主
帖子事件
创建了帖子
2013-01-22 03:41
社区公告
暂无公告