2.4.10 Thao tác với bit đơn lẻ (5)

# 2

Reset bit của bạn – tức là bạn phải gán giá trị 0 cho bit đó mà không làm cho tất cả các bit khác thay đổi; chúng ta sẽ vẫn sử dụng thuộc tính của phép hợp như phần #1, nhưng chúng ta sẽ sử dụng mask (mặt nạ) hơi khác – nó sẽ như thế này:
1111111111111111111111111111110111
Nếu chú ý bạn sẽ thấy rằng mask này đã được tạo ra như là kết quả của phép phủ định của tất cả các bit của biến TheMask (ở #1). Công việc sau đó là reset bit sẽ trở nên đơn giản, và nó sẽ được thực hiện bằng một trong các cách sau(hãy chọn 1 cách mà bạn thích) →
FlagRegister = FlagRegister & ~TheMask;  FlagRegister &= ~TheMask;  

#3

Set bit của bạn – tức là bạn cần gán giá trị 1 cho bit đó mà không làm cho tất cả các bit khác thay đổi; chúng ta sẽ sử dụng thuộc tính của phép tuyển để xử vụ này.
x | 1 = 1 x | 0 = x
Chúng ta sẽ set bit lên như sau →
FlagRegister = FlagRegister | TheMask;  FlagRegister |= TheMask;  

#4

Để đảo bit của bạn – thay đổi giá trị từ 1 thành 0 và ngược lại thì chúng ta sẽ phải sử dụng một thuộc tính rất hay ho của phéo xor
x ^ 1 = !x x ^ 0 = x
Bạn sẽ đảo bit như sau →
FlagRegister = FlagRegister ^ TheMask;  FlagRegister ^= TheMask;