例えば"int x = 10"であったとき"x = -10"を得たいという場合、どのように記述するか。
今まであまり考えることなく次のように書いていました。
x = -1 * x;
このやり方をどこで覚えたのかはわかりません。
ただ、最近ふと「かけ算使うのってどうよ?」と気になってもっとシンプルな書き方を考えてみました。
少し考えた後、
x = -x;
と書けばいいことに気がつきました。今まで何で思いつかなかったんだろう…。
ちなみに、gcc(x86環境)でアセンブラコードを見てみましたが、"-1 * x"は"0 - x"として処理されていました*1。一方、"x = -x"はnegl命令で処理されていました。
おまけ
ある種の人にとっては符号の反転とは次のような処理らしいです。
x = ~x + 1;
*1:subl命令が使われていた