特定的位数可以称为标志吗?
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 用于表示某些 属性 的任何离散值变量。通常布尔变量用作标志。
标志枚举:
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 用于表示某些 属性 的任何离散值变量。通常布尔变量用作标志。