はてなキーワード: xorとは
これ自体がプログラミング言語の機能だと思ってるんじゃないかと
だからXORについても、なにかプログラミング言語の力で「左辺だけで演算結果を得られる方法があるのでは」という発想が出るんじゃないかと
プログラミングの基本的手法の1つに、論理演算というものがある。
これは真偽値(真=true、偽=false)同士の組み合わせを評価し、結果をtrue/falseで返すというものだ。
この演算のための演算子の代表的なものがANDとORで、それぞれ論理積と論理和という。
式aとbにtrue/falseのいずれかが定義されているとして、
a AND bだったらaとb両方がtrueのときのみ、演算結果がtrueになり、
a OR bだったらaとbいずれかがtrueであれば、演算結果がtrueになる。
ということは、
ANDの場合は左辺の式がfalseの時点で、右辺を評価するまでもなく演算結果はfalseとなり、
ORの場合は左辺の式がtrueの時点で、右辺を評価するまでもなく演算結果はtrueとなる。
これを短絡評価といい、今どきのプログラミング言語では必ずこの仕掛けが実装されていると。
これは排他的論理和といい、演算子の右辺と左辺の結果が違う組み合わせの場合のみtrueとなる。
つまりa=trueかつb=falseの場合か、a=falseかつb=trueの場合のみ、演算結果(a XOR b)がtrueとなる。
問題は、どういうわけかこのXORには短絡評価が存在しないのだ。
どのプログラミング言語を調べても短絡評価がないので、かなり驚いている。
一体どういうこと?
(追記)
だからBOOLの場合flagが偽の場合flag++をすると真になるが
真を++しても偽にはならない事が多い
他方boolの場合は
int i;
bool f = i &1;
にかなり近いから
f = f&1;
の場合 f++をすると偽にはなるが遅い そのためFlagを似せにするときはXORを使う
というのはプログラマーがやることであって 無理やりコンパイラーでやろうとするから 遅くなる
プログラマーなどいらない、おれたちはミスなど許さない俺たちは全知全能の完璧だとでもおもっていないと、そんな事は起きない
これはしょうがないからプログラマーさんにお願いしようとおもっていると そうはならない
だから相手が人だった場合 侮辱している おまえらはどうせサルなみの頭が悪いから こんなことお願いできないと相手を侮辱していないとそんなことにはならない
肺炎であるコロナに、なぜか手を洗えというような食堂関係の指示が出ても
だから肺炎だからマスクのほうがいいなぁとおもっても、手を洗う
飛沫が肺に入ったら大変だからな
何気ない会話の中で
「そこは2人のANDを取らないといけないですね」
って言ったらみんな「?」な顔してるんだよね
んで
とか言ったらもはや
「い,い,い,いくし,なんだって?」
って感じで半笑いになったんだよ
んで説明しても
「あー研修でそんな話もあったね」
ぐらいの反応なわけ
別にたまたまその人が単に畑違いなだけではなくて,そこにいる人たちみんな「?」ってなってて
後で他のグループとかにも聞いたらやっぱり「?」ってなって
唯一反応したのがサーバ系の調達任されてるヲタクだけだったわけですよ
そん時気づいたんだけど,ネットワーク屋さんって情報処理屋さんではなくて