C Tricks(十八)—— 整数绝对值的实现

来源:互联网 发布:ubuntu 文件权限设置 编辑:程序博客网 时间:2024/05/18 23:15
  • 为正还是为负;(对 int 类型而言,第一位为符号位,其余为数值,则右移 31 位,再与 1 求与)
    • 如果为正 ⇒ 返回原值
    • 如果为负 ⇒ 对其二进制形式各位取反 + 1
int abs(int x){    return x >> 31 & 0x01 ? ~x + 1 : x;}
0 0
原创粉丝点击