首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BitArray和XOR

BitArray和XOR
EN

Stack Overflow用户
提问于 2012-02-07 06:08:46
回答 3查看 2.5K关注 0票数 13

我正在寻找一种基于操作符的处理位掩码和位布尔操作的方法(XOR / NOR / OR /和/ NOT / EQV /等等)。一般来说,我非常喜欢扩展方法风格的方法,但在这种情况下,我发现它有点混乱。

在C#中有更简单的处理位元的方法吗?

代码语言:javascript
复制
        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
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-02-07 06:22:09

没有直接使用BitArray的方法--但是始终可以创建一个包含BitArray的包装类,并在那里定义您自己的操作符。

当然,如果您正在处理64位或更少的,您可以只使用longulong,并完成它.

票数 19
EN

Stack Overflow用户

发布于 2012-02-07 06:25:45

没有办法在BitArray中这样做,原因很好:像OrXor这样的操作会修改第一个操作数。这不是|^通常所做的。

如果需要,可以创建具有所需运算符的包装器,包括在执行操作之前复制第一个操作数的值。

票数 11
EN

Stack Overflow用户

发布于 2012-02-07 06:19:32

不幸的是,由于扩展类中没有运算符重载(运算符重载必须在类或结构本身中定义),因此无法真正将这些方法转换为运算符。我希望(我相信其他很多人也会这么做),这将在未来得到改变,但目前还没有办法这样做。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9171749

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档