【问题标题】:What is this called? (Like binary, I think?)这个叫什么? (像二进制一样,我想?)
【发布时间】:2026-02-06 19:15:01
【问题描述】:

让我解释一下,

所以我有 6 个选项/标志,每个都与 2^n 中的一个数字配对(由于某种原因让我想起了二进制)

1 - 选项 1

2 - 选项 2

4 - 选项 3

8 - 选项 4

16 - 选项 5

32 - 选项 6

就我而言,我可以选择任意数量的选项,但只能选择一个。

所以我会输入一个数字并期望根据该数字调用不同的方法

一些例子:

3 - 选项 1 和选项 2 (1+2=3)

17 - 选项 5 和选项 1 (16+1=17)

46 - 选项 6、选项 4、选项 3 和选项 2 (32+8+4+2=46)

81 - 所有选项 (32+16+8+4+2+1=81)

我希望有人以前使用过这种类型的东西和/或可以指导我使用任何资源。就我而言,我将使用 Java,但我猜它会使用基本数学,所以它可以被翻译成任何语言。

关于这是什么的任何想法?

-AGK

【问题讨论】:

  • 搜索“位掩码”。
  • 看看这个:en.wikipedia.org/wiki/Bitwise_operation 和谷歌“位掩码”
  • 我们也称这些为“标志”。
  • 正是我需要的!位掩码。谢谢!
  • 吹毛求疵:32+16+8+4+2+1=63,而不是 81。

标签: java binary option flags


【解决方案1】:
boolean isSet(int mask, int bit) {
    return ((1 << bit) & mask) != 0;
}

例如,此方法将测试指定位置的单个位是否设置为true。 (纠正我,如果我错了)

【讨论】:

    最近更新 更多