是否有使用base-2数字编码唯一选项列表的技术名称?

Lun*_*tik 5 algorithm options bitmask bitflags

对这个问题相当模糊的性质表示道歉,我从来没有正式教过编程,谷歌对于像我这样的自助人来说是无用的,因为关键词很模糊.

我正在编写一些函数,将一个选项列表编码并解码为Long,以便它们可以轻松地在应用程序中传递,你知道这样的事情:

1 - Apple
2 - Orange
4 - Banana
8 - Plum

在这种情况下,数字11代表Apple,Orange和Plum.

我已经有了它的工作,但我看到这一直在使用,所以假设这个技术有一个共同的名称,毫无疑问,目前我所能达到的各种最佳实践和聪明的算法.

编辑:谢谢大家,我知道答案很快就会来:)

Jus*_*ner 12

位标志.这是一种用作Bitmasking的一部分的技术.

0001 - Apple
0010 - Oranage
0100 - 香蕉
1000 - 梅花

每个1都是标记位.

现在,您可以使用这些数字轻松执行按位运算:

if((11 & Apple) == Apple) // The Apple Flag is set
{
    // Do Something
}
Run Code Online (Sandbox Code Playgroud)