【トリッキーなコード】XOR(排他的論理和)をifステートメントで表現
XORをifステートメントで表現するやり方です ↓↓a < 0 != b < 0
C++コード例)
結果は、 a,bが、 両方ともマイナス or 両方とも0 ⇒ 0 が表示 どちらかがマイナスで どちらかが0 ⇒ 1 が表示 されます。 表にするとこんな感じ。#include <iostream> using namespace std; int main() { int a = -1; int b = -1; cout << (a < 0 != b < 0) << endl; return 0; }
a | b | 結果 |
---|---|---|
マイナス | マイナス | 0 |
マイナス | 0 | 1 |
0 | マイナス | 1 |
0 | 0 | 0 |