考虑一下场景
我有这样的价值观
我有这样的价值观
Amazon -1
Walmart -2
Target -4
Costco -8
Bjs -16
在DB中,通过根据每个产品的可用性屏蔽这些值来存储数据.
例如.,
Mask product description
1 laptop Available in Amazon
17 iPhone Available in Amazon
and BJ24 Mattress Available in
Costco and BJ’s
像这样,所有产品都被掩盖并存储在DB中.
如何根据Masked值检索所有零售商.
例如,对于床垫,蒙面值是24.然后我如何找到或列出Costco& BJ以编程方式.任何算法/逻辑都将受到高度赞赏.
解决方法
int mattress = 24; int mask = 1; for(int i = 0; i < num_stores; ++i) { if(mask & mattress != 0) { System.out.println("Store "+i+" has mattresses!"); } mask = mask << 1; }
if语句将这些位排成一行,如果床垫值与掩码组具有相同的位,那么其商店的面具就是销售床垫.当商店出售床垫时,床垫值和面罩值的AND将仅为非零.对于每次迭代,我们将掩码位向左移动一个位置.
请注意,掩码值应为正值,而不是负值,如果需要,可以乘以负值.