• 为正还是为负;(对 int 类型而言,第一位为符号位,其余为数值,则右移 31 位,再与 1 求与)
    • 如果为正 ⇒ 返回原值
    • 如果为负 ⇒ 对其二进制形式各位取反 + 1
int abs(int x){
    return x >> 31 & 0x01 ? ~x + 1 : x;
}
posted on 2016-09-03 18:33  未雨愁眸  阅读(93)  评论(0编辑  收藏  举报