紙でいくつかのテストを実行しましたが、どこにも確認が見つからないようです。
いくつかの一意の 8 ビット数値があり、それらを XOR して、どこかに保存するとします。その後、後で同じ数値とその格納された数値を xor した場合、常に 0 になりますか?
基本的に、操作を実行する前に満たす必要がある条件の列挙があります。健全性チェックとして、また誤って戻ってきて後でこのコードを壊さないようにするために、必要な条件を XOR して開始し、条件が満たされたときにその保存された値で条件を XOR することを検討していました。次に、操作が発生する直前に、0 に戻っていることを確認します。
だから何か
sanity_check = C1 ^ C3 ^ C5
...
//Condition one is met
sanity_check ^= C1
...
//Condition 3 is met
sanity_check ^= C3
...
//Condition 5 is met
sanity_check ^= C5
...
if( sanity_check == 0 )
Do operation
適切な条件があれば、どこかで中間の 0 状態になる可能性があるため、完璧ではないことはわかっています。しかし、それは、将来、これらの条件の1つを誤って操作の下に移動することを防ぐためのガードとして、私自身が使用するためのものです.