比方說,在一些系統中用戶的狀態被分配給一個數字,是2如何找到,如果數2^n爲2^1總和 - 2^M
1 - New Member
2 - Member
4 - Friend
8 - VIP
16 - Admin
32 - System Owner
一個權力因此,如果System Owner
得到Friend
和Admin
的狀態,他的狀態將有一個值52.現在,我想查詢我的狀態表,並查看哪些用戶具有Friend
狀態。如何檢查數字4
是數字生成總和(52
)的一部分?
如果這是一個函數來完成,下面的輸出預計:
isPartOf(4, 52); //returns true
isPartOf(12, 52); //returns false since 8 (VIP) was not used during calculating 52
算法,在我腦海中是最大可能數(2^n)的減法比(在例子的情況下)52
下。有沒有更有效的方法來做到這一點?
Downvote?請解釋爲什麼 – lolbas