>>266
int abs(int n){
    int c = n >> 31;
    return n+c^c;
}

intが32bitでシフト演算が算術シフトと仮定するとこんな感じ。
そうじゃなかったらint c = -(n<0);にしても同じ。

ようするにcは負数なら全ビットが1、そうでなければ0にすれば良い。