# -*- coding: utf-8 -*-
"""
二进制状态标识
"""
# 是否包含状态
def hasState(states, operateState):
return (states & operateState) != 0
# 添加状态
def addState(states, operateState):
if (hasState(states, operateState)):
return states;
return (states | operateState)
# 删除状态
def removeState(states, operateState):
if (not hasState(states, operateState)):
return states
return states ^ operateState
FIRST_STATE = 1L << 0 # 0000 0001
SECOND_STATE = 1L << 1 # 0000 0010
THIRD_STATE = 1L << 2 # 0000 0100
FOURTH_STATE = 1L << 3 # 第四个状态 0000 1000
FIFTH_STATE = 1L << 4 # 第五个状态 0001 0000
SIXTH_STATE = 1L << 5 # 第六个状态 0010 0000
SEVENTH_STATE = 1L << 6 # 第七个状态 0100 0000
EIGHTH_STATE = 1L << 7 # 第八个状态 1000 0000
s = 0
s = addState(s, FIRST_STATE)
print s
s = addState(s, FIFTH_STATE)
print s
s = addState(s, SEVENTH_STATE)
print s
print hasState(s, FIRST_STATE)
print hasState(s, SECOND_STATE)
print hasState(s, THIRD_STATE)
print hasState(s, FOURTH_STATE)
print hasState(s, FIFTH_STATE)
print hasState(s, SIXTH_STATE)
print hasState(s, SEVENTH_STATE)
print hasState(s, EIGHTH_STATE)