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

Can particular bit number be called flag?

标志枚举:

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
};

或者只有表示位组合的值(如第一个示例)被称为 "flag"?

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

相同的值

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