【初心者歓迎】C/C++室 Ver.22【環境依存OK】
■ このスレッドは過去ログ倉庫に格納されています
0269デフォルトの名無しさん
2005/10/16(日) 12:37:57int abs(int n){
int c = n >> 31;
return n+c^c;
}
intが32bitでシフト演算が算術シフトと仮定するとこんな感じ。
そうじゃなかったらint c = -(n<0);にしても同じ。
ようするにcは負数なら全ビットが1、そうでなければ0にすれば良い。
■ このスレッドは過去ログ倉庫に格納されています