gpt4 book ai didi

c++ - |= 和 &= 是如何工作的?

转载 作者:太空宇宙 更新时间:2023-11-04 15:51:59 25 4
gpt4 key购买 nike

我想以这样的方式制作一个枚举,以便在 |ing 之后我可以 & 参数。

我可以简单地做:

enum Things
{
Something,
SomethingElse
};

或者我必须小心地给他们提供特定的数字才能起作用吗?

另外,如果一个值,比如 3,已经被 |='d 输入,|= 它会再次导致故障(如 if(attributes & 3) 将不再起作用)

谢谢

最佳答案

然后将您的枚举定义为:

enum Things
{
Something = 1 //0000 0001
SomethingElse = 2; //0000 0010
SomethingX = 4; //0000 0100
SomethingY = 8; //0000 1000
SomethingZ = 16; //0001 0000
};

想法是,二进制表示中只有一位应该是1,其他应该是0,如上面的注释所示。另外,我在评论中只使用了 8 位,这并不意味着枚举值是一个字节大小。我只是为了方便才使用它们。枚举值可以非常大,甚至可以容纳 long

关于c++ - |= 和 &= 是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6392999/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com