gpt4 book ai didi

c++ - 特定的位数可以称为标志吗?

转载 作者:行者123 更新时间:2023-11-30 03:42:01 25 4
gpt4 key购买 nike

标志枚举:

enum class AbilityFlag
{
FLY = 1 << 0, // 0x01
WALK = 1 << 1, // 0x02
JUMP = 1 << 2, // 0x04
SWIM = 1 << 3, // 0x08
};

但是如果是特定的位能不能叫flag呢?

enum class AbilityFlag
{
FLY = 0, // bit no. 0
WALK = 1, // bit no. 1
JUMP = 2, // bit no. 2
SWIM = 3, // bit no. 3
};

或者只有表示位组合的值(如第一个示例)称为“标志”?

最佳答案

第一个示例中的类型称为位域标志域。每个常量由一个位表示。这意味着您可以使用按位 运算符在一个变量中组合不同的设置,例如 ability = WALK |跳转。稍后您可以使用按位 and 提取单个属性,例如 canJump = ability & JUMP 这在您的第二个枚举中是不可能的,其中 WALK | JUMPSWIM 具有相同的值。

任何这些类型的变量都可以称为标志。通常,术语标志 用于指示某些属性的任何离散值变量。通常 bool 变量用作标志。

关于c++ - 特定的位数可以称为标志吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37059341/

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