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

คุณตั้งค่า ล้าง และสลับบิตใน C/C++ อย่างไร


คุณสามารถตั้งค่าล้างและสลับบิตได้โดยใช้ตัวดำเนินการระดับบิตใน C, C++, Python และภาษาโปรแกรมอื่นๆ ทั้งหมดที่สนับสนุนการดำเนินการเหล่านี้ คุณต้องใช้ตัวดำเนินการ bitshift เพื่อให้บิตถูกที่

ตั้งค่าเล็กน้อย

ในการตั้งค่าบิต เราจะต้องใช้ตัวดำเนินการระดับบิต OR -

ตัวอย่าง

#includeใช้เนมสเปซ std;int main() { int i =0, n; // ป้อนบิตที่จะตั้งค่า:cin>> n; ผม |=(1 < 

ผลลัพธ์

ถ้าคุณป้อน 4 สิ่งนี้จะให้ผลลัพธ์ -

16

เพราะเลข 16 มีค่าเท่ากับ 10000 ในเลขฐานสอง

เคลียร์นิดหน่อย

เพื่อล้างข้อมูลเล็กน้อย เราจะต้องใช้ตัวดำเนินการระดับบิต AND(&) และตัวดำเนินการ NOT ระดับบิต (~) -

ตัวอย่าง

#include โดยใช้เนมสเปซ std;int main () { // i คือ 110 ในไบนารี int i =6, n; // ป้อนบิตที่จะล้าง:cin>> n; ผม &=~(1 < 

ผลลัพธ์

หากคุณป้อน 1 สิ่งนี้จะให้ผลลัพธ์ -

4

เพราะ 110 กลายเป็น 100 ซึ่งเท่ากับ 4 ในทศนิยม

สลับเล็กน้อย

ในการสลับบิต เราจะต้องใช้ตัวดำเนินการ XOR ระดับบิต (^) -

ตัวอย่าง

#include โดยใช้เนมสเปซ std;int main () { // i คือ 110 ในไบนารี int i =6, n; // ป้อนบิตที่จะสลับ:cin>> n; ผม ^=(1 < 

ผลลัพธ์

หากคุณป้อน 1 สิ่งนี้จะให้ผลลัพธ์ -

4

เพราะ 110 กลายเป็น 100 ซึ่งเท่ากับ 4 ในทศนิยม