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

Can particular bit number be called flag?

本文关键字:被称为 标志      更新时间:2023-10-16

标志枚举:

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的值相同。

具有任何这些类型的变量都可以称为标志。通常,标志一词用于表示某些属性的任何discete值变量。通常使用布尔变量作为标志。