C/C++の宿題やらせてください。9代目
■ このスレッドは過去ログ倉庫に格納されています
0205デフォルトの名無しさん
NGNG>>> or << のことと混同してない?
>>や<<は2^nの乗除と同等と定められている
&,|,^などの動作は処理系依存として何も規定されていない。
(数値的にだけでなく、ビット列についても全く何も規定していない)
我々が数学的に想像する結果はISO規格としては保証しないということ。
>^= は右結合性だから、まともな処理系・コンパイラなら(a^=(b^=(a^=b)))
ISOの規格上で未定義。もちろん動作する処理系があっても何もおかしくない
不定は三回の代入の順番を決められないところ。最後のa^=のときにまだ
最初のa^=bの代入が終わっていないかもしれない。
必ずISO準拠な訳でもないし、処理系で保証しているならそれもいいんだが
そんなわけでa-=b,b+=a,a=b-aに一票
■ このスレッドは過去ログ倉庫に格納されています