有時(shí)候,我們希望用一個(gè)字段保存對(duì)象的所屬狀態(tài)或分類,當(dāng)這個(gè)值存在多種組合的時(shí)候,我們就可以使用位運(yùn)算來(lái)表示組合后的值。
先定義類型A=1,B=2,C=4,D=8,E=16等2的倍數(shù),
那么objectA即屬于A又屬于C,其值為A|C,添加類型使用|(或)運(yùn)算,移除類型使用^(異或)運(yùn)算,判斷是否屬于某個(gè)類型使用&運(yùn)算。
A=00000001
B=00000010
C=00000100
D=00001000
E=00010000
objectA = (A|B|C = 00000111)
去除B類型 00000111
^00000010
-------------------------
00000101=(A|C)
判斷是否是A,00000101&00000001 = 00000001
先定義類型A=1,B=2,C=4,D=8,E=16等2的倍數(shù),
那么objectA即屬于A又屬于C,其值為A|C,添加類型使用|(或)運(yùn)算,移除類型使用^(異或)運(yùn)算,判斷是否屬于某個(gè)類型使用&運(yùn)算。
A=00000001
B=00000010
C=00000100
D=00001000
E=00010000
objectA = (A|B|C = 00000111)
去除B類型 00000111
^00000010
-------------------------
00000101=(A|C)
判斷是否是A,00000101&00000001 = 00000001