프로그램 개발에서 변수는 비트 연산을 통해 여러 상태를 저장할 수 있습니다.
프로그램 개발에는 보통 다양한 상태가 존재하는데, 각각의 상태를 변수에 저장하면 경우에 따라 부적합한 경우가 있습니다. 개체를 숨기거나 표시하는 데 사용됩니다.이 때 다음 코드와 같이 비트 연산을 사용하여 다양한 상태를 저장하는 것이 좋습니다.
class HiddenReason:
REASON1 = 1 << 0
REASON2 = 1 << 1
REASON3 = 1 << 2
class Object:
def __init__(self):
self.state = 0
self.visible = True
def addHiddenReason(self, reason):
self.state |= reason
self.updatevisible()
def removeHiddenReason(self, reason):
self.state &= ~reason
self.updatevisible()
def updatevisible(self):
self.visible = not self.state
a = Object()
print(a.visible) # True
a.addHiddenReason(HiddenReason.REASON1)
print(a.visible) # False
a.addHiddenReason(HiddenReason.REASON2)
print(a.visible) # False
a.removeHiddenReason(HiddenReason.REASON1)
print(a.visible) # False
a.removeHiddenReason(HiddenReason.REASON2)
print(a.visible) # True
이 코드는 하나의 변수 상태에 여러 상태를 저장하는 것으로 매우 유용하며 이 방법은 다른 프로그램 개발에서도 매우 일반적입니다!