0

让我解释,

所以我有 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

4

1 回答 1

1
boolean isSet(int mask, int bit) {
    return ((1 << bit) & mask) != 0;
}

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

于 2013-10-05T18:35:38.623 回答