Bitwise Logic知道从服务器启用了什么
本文关键字:启用 什么 服务器 Logic Bitwise | 更新日期: 2023-09-27 18:26:16
我正在寻找一些快速代码来帮助我在比特码上的逻辑(我第一次这样做)
基本上,我有3个属性,每个属性的ID为1,2,4
int A = 1
int B = 2
int C = 4
假设A和C被选中,这将等于5,并且这个值将被保存到数据库中。好的
现在我需要在返回的路上计算出使用该值检查的内容。
所以在这个例子中,值是5,那么我怎么知道用逐位逻辑检查了哪些属性呢?
所以我不是要求你做我的工作,因为我知道我在做什么,
int i = A & C;
// if i == 5, then we know it was A and C checked
但你需要为每种可能性都这样做吗?
提前感谢
您可以简单地检查以下条件:
i & A != 0 // true if A is set in i
i & B != 0 // true if B is set in i
话虽如此,比特字段在很多情况下都是不合适的。特别是当您将结果值存储到数据库中时,通常最好只定义更多的列来存储每个标志。