我正在寻找一种基于运算符的方式来处理位掩码和按位 bool 运算(XOR/NOR/OR/AND/NOT/EQV 等)。一般来说,我真的喜欢扩展方法风格的方法,但在这种情况下,我觉得它有点乱。
在 C# 中是否有更简洁的位处理方式?
BitArray a = new BitArray(0x001);
BitArray b = new BitArray(0x100);
BitArray c = new BitArray(0x010);
BitArray test = a | b; // won't compile
BitArray test2 = a ^ c; // won't compile
BitArray test3 = a.Or(b); // compiles
BitArray test4 = a.Xor(c); // compiles
最佳答案
没有办法直接使用 BitArray
来完成它 - 但您始终可以创建一个包含 BitArray
的包装类,并在那里定义您自己的运算符。
当然,如果您要处理 64 位或更少位,您可以只使用 long
或 ulong
并完成它...
关于c# - 位数组和 XOR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9171749/