BITWISE LÀ GÌ

trong các ví dụ bên dưới phía trên, đa phần họ thao tác làm việc với hệ nhị phân 4 bit. vấn đề đó tiện lợi mang đến bài toán dễ dàng hóa ví dụ.

Bạn đang xem: Bitwise là gì

Toán tử dịch bit trái (>).Trong phxay dịch trái thì toán hạng phía bên trái là biểu thức để dịch rời những bit, còn toán hạng bên yêu cầu là số lượng bit đề xuất dịch rời. vì chưng vậy, khi chúng ta viết x0011 Lưu ý rằng vào ngôi trường hợp trang bị ba, chúng tôi vẫn thay đổi một chút về cuối số! Các bit được di chuyển thoát khỏi cuối số nhị phân sẽ ảnh hưởng mất lâu dài. Tương tự với ngôi trường hợp dịch bit yêu cầu.

1100 >> 1 == 01101100 >> 2 == 00111100 >> 3 == 0001sinh sống ngôi trường vừa lòng vật dụng 3 cũng tương tự trên, bịt cuối bị mất cùng cùng những bit phía trái được cnhát 0 vào. Dưới đó là một ví dụ về di chuyển bit:

#include #include int main(){ std::bitmix x 0b1100 ; std::cout > 1) kết quar:

110001101000Bitwise NOT

Toán thù tử bitwise NOT (~) có lẽ là dễ dàng nắm bắt duy nhất vào tất cả những toán thù tử bitwise. Nó chỉ dễ dàng và đơn giản là lật từng bit trường đoản cú 0 thành bit 1 hoặc ngược trở lại. Lưu ý rằng tác dụng của NOT dựa vào vào size một số loại dữ liệu của công ty.lật 4 bits:~0100 là 1011

lật 8 bits:~0000 0100 là 1111 1011

Trong cả nhì ngôi trường vừa lòng 4 bit với 8 bit, chúng ta bắt đầu với thuộc một trong những (nhị phân 0100 tương tự cùng với 0000 0100 theo thuộc giải pháp nhưng mà số thập phân 7 như thể với 07), nhưng công ty chúng tôi kết quả với cùng một công dụng không giống. Chúng ta có thể thấy vấn đề đó trong ví dụ dưới đây:

#include #include int main()std::cout ~0b0100u ~0b0100u ; return 0;công dụng tạo ra là:1011 11111011

Bitwise OR

Bitwise OR (|) chuyển động y hệt như cái tên của chính nó (là hoặc). Tuy nhiên, cố gắng vì chưng vận dụng OR cho các toán thù hạng để tạo thành một kết quả độc nhất vô nhị, bitwise OR áp dụng cho từng bit! ví dụ như, hãy chú ý biểu thức 0b0101 | 0b0110.

Để thực hiện (bất kỳ) thao tác làm việc bitwise, biện pháp dễ dàng nhất là bố trí hai toán thù hạng lên như vậy này:

0 1 0 1 OR0 1 1 0tiếp đến áp dụng Việc tính toán thù đến từng cột bit. Trong 1 cột gồm ít nhất một số ít 1 thì mang đến hiệu quả là một trong những, còn sót lại là 0:

0 1 0 1 OR0 1 1 0-----------0 1 1 1Ta viết bằng code c++ nlỗi sau:

#include #include int main() std::bitset 0b0110 ); return 0;hiệu quả : 0111

Chúng ta rất có thể làm điều tương tự như với những biểu thức OR, ví dụ như 0b0111 | 0b0011 | 0b0001 như sau:

0 1 1 1 OR0 0 1 1 OR0 0 0 1--------0 1 1 1viết bằng code c++:

#include #include int main() std::bitset 0b0011 công dụng : 0111.

Xem thêm: Cao Gạc Nai Là Gì? Công Dụng Và Cách Dùng Cây Cỏ Gạc Nai Là Cây Gì

Bitwise AND

Bitwise AND (&) hoạt động giống như nlỗi bên trên. Logic AND được review là đúng ví như cả toán thù hạng trái cùng buộc phải Reviews là đúng. Bitwise AND đến tác dụng là đúng (1) nếu như cả hai bit trong cùng một cột là một trong những. Hãy chăm chú biểu thức 0b0101 và 0b0110. Sắp xếp từng bit lên với vận dụng thao tác làm việc AND cho từng cột bit:

0 1 0 1 AND0 1 1 0--------0 1 0 0ví dụ :

#include #include int main()std::cout 0b0101 & std::bitset 0b0110 ); return 0;công dụng mang lại ra:

0100

Tương tự, chúng ta cũng có thể làm điều tương tự cùng với các biểu thức AND, chẳng hạn như 0b0001 và 0b0011 & 0b0111. Nếu tất cả những bit trong một cột là 1, hiệu quả của cột đó là một.

0 0 0 1 AND0 0 1 1 AND0 1 1 1--------0 0 0 1ví dụ :

#include #include int main()std::cout 0b0001 và std::bitset 0b0011 và std::bitset 0b0111 ); return 0;kết quả :

0001Bitwise XOR

Tân oán tử sau cùng là XOR bitwise (^). Khi đánh giá nhị toán thù hạng, XOR mang đến kết quả là đúng (1) ví như một và duy nhất trong các toán hạng của nó là đúng (1). Nếu cả hai những đúng hoặc sai trái thì nó mang lại hiệu quả là 0. Hãy cẩn thận biểu thức 0b0110 ^ 0b0011:

0 1 1 0 XOR0 0 1 1-------0 1 0 1Ta cũng có thể Đánh Giá mẫu mã cột biểu thức XOR ghép, ví dụ như 0b0001 ^ 0b0011 ^ 0b0111. Nếu bao gồm số chẵn bit một trong những một cột, hiệu quả là 0. Nếu tất cả một số trong những lẻ bit 1 trong các một cột, kết quả là 1.

0 0 0 1 XOR0 0 1 1 XOR0 1 1 1--------0 1 0 1Phnghiền gán toán thù tử bitwise

Tương từ bỏ nlỗi những toán thù tử gán số học, C ++ hỗ trợ các toán thù tử gán bit theo thiết bị từ bỏ để chế tạo điều kiện dễ dàng sửa đổi các biến đổi.

*

ví dụ : ta gồm phép gán là x = x >> một cách viết này tương đương với x >>= 1.

#include #include int main(){ std::bitphối bits 0b0100 ; bits >>= 1; std::cout chương trình này mang lại công dụng :