Halo Binary专家在那里
我有一个位掩码,表示某个房间的 ON 选项,例如11001 (Opt #1, 4, 5)
另一个用户尝试使用自己的位掩码进行搜索(例如111000 (Opt #4, 5, 6)
进行(Room | Search) != 0
表示它会比较掩码,并查看是否有相同的开关 ON (在这种情况下为#4)
问题是,开关#4 是会议室的第二个“活动”开关,而第一个是“搜索”开关。
我还需要用户同时发现#4 是会议室的第二个开关。
用户具有要检查的单独的位掩码。 房间和用户都只能打开3个
我的方法可以知道哪个是最后一个(最大)索引,例如使用UserMask2(第三个选项):
if(RoomMask | UserMask2 != 0) A = (RoomMask - UserMask2 = 11001 - 10000 = 01001).
if (A < RoomMask)
UserMask2是第三个开关,因为UserMask2的减号使其低于UserMask2
这只能确定某个UserMask是否确实在RoomMask的最大位置上。
但是我不确定如何继续。
这用于使用Photon(使用 SQL )的对接搜索,我可能必须通过一个WHERE查询(不确定是否可以存储变量)来做到这一点。
我希望我足够清楚 干杯!
答案 0 :(得分:0)
您的问题不是很清楚,因此我不是100%会找到您想要的答案。不过,这里有。
您可以使用like
键(其中有两个通配符)搜索列的内容:
%
表示任何内容,_
表示任何字符。现在,假设您要在10个可能的开关(在此示例中为最左边的1个)的映射中找到开关1、4和7的匹配项,可以使用以下子句:
WHERE Bitmap like '1__1__1___`
当然,这只是一个例子,您需要根据具体情况对其进行调整。