c# - 位数组和 XOR

标签 c# .net

我正在寻找一种基于运算符的方式来处理位掩码和按位 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 位或更少位,您可以只使用 longulong 并完成它...

关于c# - 位数组和 XOR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9171749/

相关文章:

c# - 我如何改进这个价格计算代码,现在进行 4 次计算,但在不久的将来会进行更多计算?

c# - 改进枚举到组合框的绑定(bind)(使用 MarkupExtension)

时间:2019-03-17 标签:c#linqOrderByDescending withinnerLastOrDefault

c# - 我如何设计一个类来接收具有未知数量参数的委托(delegate)?

.net - VS 2005 可以为 .NET 4 构建 C# 吗?

c# - 如何避免在 C# 中出现不可能的 bool 状态?

c# - 在 C# 中创建我的对称 key

c# - 如果有镜面激光忽略其他物体

c# - LINQ 查询跳过调试不执行下一行

c# - 静态方法、抽象方法、接口(interface)方法比较?