Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

วิธี set, clear, toggle bit ใน C/C++


ใช้ bitwise operators พร้อม bitshift เพื่อเลื่อน bit ไปตำแหน่งที่ต้องการ

1. Set bit (ตั้งค่าเป็น 1)

ใช้ bitwise OR (|)

i |= (1 << n);  // ตั้ง bit ที่ n เป็น 1

ตัวอย่าง: n=4 → 1<<4 = 16 (binary 10000)

2. Clear bit (ล้างค่าเป็น 0)

ใช้ bitwise AND (&) กับ NOT (~)

i &= ~(1 << n);  // ล้าง bit ที่ n เป็น 0

ตัวอย่าง: i=6 (110), n=1 → ~(1<<1)=~(10)=...101 → 110 & 101 = 100 (4)

3. Toggle bit (สลับ 0↔1)

ใช้ bitwise XOR (^)

i ^= (1 << n);  // สลับ bit ที่ n

ตัวอย่าง: i=6 (110), n=1 → 110 ^ 010 = 100 (4)

โค้ดทดสอบแบบ interactive

// Set bit
int i = 0, n; cin >> n; i |= (1 << n); cout << i;

// Clear bit
int i = 6, n; cin >> n; i &= ~(1 << n); cout << i;

// Toggle bit
int i = 6, n; cin >> n; i ^= (1 << n); cout << i;