对于这个问题相当含糊的性质,我从来没有正式教过编程,而Google在这种情况下对像我这样的自助人员来说是无用的,因为关键词非常模糊。
我正在编写一些函数,将一个选项列表编码并解码为Long,以便它们可以轻松地在应用程序中传递,你知道这样的事情:
1 - Apple
2 - 橙色
4 - 香蕉
8 - 梅花 等。在这种情况下,数字11代表Apple,Orange&梅。
我已经有了它的工作但是我看到它一直在使用,所以假设这个技术有一个共同的名称,毫无疑问,目前我所能达到的各种最佳实践和聪明的算法。
编辑:感谢所有人,我知道答案会很快得到答案:)
答案 0 :(得分:12)
Bit Flags。这是一种用作Bitmasking的一部分的技术。
0001 - Apple
0010 - Oranage
0100 - 香蕉
1000 - 梅花
每个1都是标记位。
现在,您可以使用这些数字轻松执行按位操作:
if((11 & Apple) == Apple) // The Apple Flag is set
{
// Do Something
}
答案 1 :(得分:3)
答案 2 :(得分:2)
Bitflags
答案 3 :(得分:1)
通过c#Flags attribute 的帮助我将使用一些字段或一组标记
有点相关,在硬件中也有one-hot encoding虽然这意味着你没有获得标志组合