Ben*_*ual 0 c# bit-manipulation xor
我做以下事情:
public static byte Merge(this byte b1, byte b2) {
return (byte)(b1 ^ b2);
}
Run Code Online (Sandbox Code Playgroud)
所以我可以打电话:
byteVar = byteVar1.Merge(byteVar2);
Run Code Online (Sandbox Code Playgroud)
现在,我正在寻找这种反转.我应该实现一个Unmerge-Method来调用:
byteVar3 = byteVar.Unmerge(byteVar2);
Run Code Online (Sandbox Code Playgroud)
byteVar3现在应该与byteVar1相同.
我试过了:
public static byte Unmerge(this byte b1, byte b2) {
return (byte)(b1 & ~b2);
}
Run Code Online (Sandbox Code Playgroud)
但它不正确.
Jon*_*eet 11
XOR是自反的 - 所以你可以使用:
byteVar3 = byteVar.Merge(byteVar2);
Run Code Online (Sandbox Code Playgroud)
(我不确定"merge"在这里是一个特别好的名字,请注意......你刚刚进行了XOR操作.甚至不清楚为什么你需要一个单独的方法.)