trong những ví dụ dưới trên đây, đa số chúng ta làm việc với hệ nhị phân 4 bit. điều đó dễ ợt mang đến câu hỏi đơn giản dễ dàng hóa ví dụ.

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

Toán tử dịch bit trái (>).Trong phép dịch trái thì toán thù hạng bên trái là biểu thức nhằm dịch rời các bit, còn toán thù hạng mặt buộc phải là con số bit bắt buộc di chuyển. vị vậy, khi chúng ta viết x0011 Lưu ý rằng trong ngôi trường vừa lòng đồ vật cha, công ty chúng tôi đã biến đổi một chút về cuối số! Các bit được dịch chuyển thoát khỏi cuối số nhị phân sẽ ảnh hưởng mất vĩnh viễn. Tương từ bỏ cùng với ngôi trường thích hợp dịch bit cần.

1100 >> 1 == 01101100 >> 2 == 00111100 >> 3 == 0001ở trường đúng theo sản phẩm công nghệ 3 cũng tương tự trên, bít cuối bị mất và với những bit phía trái được cyếu 0 vào. Dưới đó là một ví dụ về dịch chuyển bit:

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

110001101000Bitwise NOT

Toán thù tử bitwise NOT (~) chắc hẳn rằng là dễ nắm bắt duy nhất trong toàn bộ những tân oán tử bitwise. Nó chỉ đơn giản dễ dàng 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 công dụng của NOT phụ thuộc vào vào form size nhiều 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ị trường hòa hợp 4 bit với 8 bit, bọn họ bắt đầu với thuộc một số (nhị phân 0100 tương tự với 0000 0100 theo cùng giải pháp nhưng số thập phân 7 tương tự cùng với 07), nhưng mà công ty chúng tôi hiệu quả với 1 tác dụng khác. Chúng ta có thể thấy điều đó vào ví dụ dưới đây:

#include #include int main()std::cout ~0b0100u ~0b0100u ; return 0;hiệu quả cho ra là:1011 11111011

Bitwise OR

Bitwise OR (|) hoạt động giống hệt như cái thương hiệu của nó (là hoặc). Tuy nhiên, nỗ lực vì chưng vận dụng OR cho các tân oán hạng để tạo thành một hiệu quả độc nhất vô nhị, bitwise OR áp dụng cho từng bit! lấy một ví dụ, hãy xem xét biểu thức 0b0101 | 0b0110.

Để triển khai (bất kỳ) thao tác làm việc bitwise, bí quyết dễ dàng nhất là thu xếp nhì tân oán hạng lên như thế này:

0 1 0 1 OR0 1 1 0sau đó áp dụng bài toán tính toán thù mang đến từng cột bit. Trong 1 cột tất cả ít nhất một số ít 1 thì mang đến tác dụng là một, còn lại là 0:

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

#include #include int main()std::cout 0b0101 công dụng : 0111

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

0 1 1 1 OR0 0 1 1 OR0 0 0 1--------0 1 1 1viết bởi code c++:

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

Xem thêm: Nhờ Giúp Dịch Cụm Từ " Phòng Giáo Dục Tiếng Anh Là Gì ? Sở Giáo Dục Và Đào Tạo Tiếng Anh Là Gì

Bitwise AND

Bitwise AND (&) hoạt động tương tự nlỗi trên. Logic AND được review là đúng nếu cả toán thù hạng trái với buộc phải nhận xét là đúng. Bitwise AND mang lại tác dụng là đúng (1) trường hợp cả hai bit vào cùng một cột là một trong những. Hãy lưu ý biểu thức 0b0101 & 0b0110. Sắp xếp từng bit lên cùng áp dụng làm việc AND đến 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 và std::bitset 0b0110 ); return 0;kết quả đến ra:

0100

Tương trường đoản cú, bạn cũng có thể làm cho điều tựa như với những biểu thức AND, chẳng hạn như 0b0001 và 0b0011 và 0b0111. Nếu tất cả những bit trong một cột là 1, tác dụng của cột kia là 1 trong.

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

#include #include int main()std::cout 0b0001 & std::bitset 0b0011 & std::bitset 0b0111 ); return 0;hiệu quả :

0001Bitwise XOR

Toán thù tử ở đầu cuối là XOR bitwise (^). khi Review nhị tân oán hạng, XOR đến tác dụng là đúng (1) trường hợp một với chỉ một trong những toán thù hạng của chính nó là đúng (1). Nếu cả 2 đông đảo đúng hoặc không đúng thì nó đến công dụng là 0. Hãy chú ý biểu thức 0b0110 ^ 0b0011:

0 1 1 0 XOR0 0 1 1-------0 1 0 1Ta cũng hoàn toàn có thể reviews mẫu mã cột biểu thức XOR ghép, chẳng hạn như 0b0001 ^ 0b0011 ^ 0b0111. Nếu tất cả số chẵn bit 1 trong những một cột, tác dụng là 0. Nếu bao gồm một số trong những lẻ bit 1 trong các một cột, công dụng là 1 trong những.

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

Tương tự nlỗi các toán thù tử gán số học, C ++ cung ứng các toán thù tử gán bit theo thứ tự nhằm tạo thành điều kiện thuận lợi sửa đổi các thay đổi.

*

ví dụ : ta có phnghiền 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::bitset bits 0b0100 ; bits >>= 1; std::cout công tác này mang lại tác dụng :

Bài viết liên quan

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *