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

但你需要为每种可能性都这样做吗?

提前感谢

Bitwise Logic知道从服务器启用了什么

您可以简单地检查以下条件:

i & A != 0  // true if A is set in i
i & B != 0  // true if B is set in i

话虽如此,比特字段在很多情况下都是不合适的。特别是当您将结果值存储到数据库中时,通常最好只定义更多的列来存储每个标志。