Toán tử so sánh Bit trong C
Các toán tử so sánh Bit được hỗ trợ bởi Ngôn ngữ C được liệt kê trong bảng dưới đây. Giả sử biến A giữ giá trị 60 và biến B giữ giá trị 13, thì khi đó:
Toán tử | Miêu tả | Ví dụ |
---|---|---|
& | Toán tử AND (và) nhị phân sao chép một bit tới kết quả nếu nó tồn tại trong cả hai toán hạng. | (A & B) sẽ cho kết quả là 12, tức là 0000 1100 |
| | Toán tử OR (hoặc) nhị phân sao chép một bit tới kết quả nếu nó tồn tại trong một hoặc hai toán hạng. | (A | B) sẽ cho kết quả là 61, tức là 0011 1101 |
^ | Toán tử XOR nhị phân sao chép bit mà nó chỉ tồn tại trong một toán hạng mà không phải cả hai. | (A ^ B) sẽ cho kết quả là 49, tức là 0011 0001 |
~ | Toán tử đảo bit (đảo bit 1 thành bit 0 và ngược lại). | (~A ) sẽ cho kết quả là -61, tức là 1100 0011. |
<< | Toán tử dịch trái. Giá trị toán hạng trái được dịch chuyển sang trái bởi số các bit được xác định bởi toán hạng bên phải. | A << 2 sẽ cho kết quả 240, tức là 1111 0000 (dịch sang trái hai bit) |
>> | Toán tử dịch phải. Giá trị toán hạng trái được dịch chuyển sang phải bởi số các bit được xác định bởi toán hạng bên phải. | A >> 2 sẽ cho kết quả là 15, tức là 0000 1111 (dịch sang phải hai bit) |
Ví dụ
Bạn thử ví dụ sau để hiểu tất cả các toán tử so sánh bit có sẵn trong Ngôn ngữ C:
#include <stdio.h> main() { unsigned int a = 60; /* 60 = 0011 1100 */ unsigned int b = 13; /* 13 = 0000 1101 */ int c = 0; c = a & b; /* 12 = 0000 1100 */ printf("1. Gia tri cua c la %d\n", c ); c = a | b; /* 61 = 0011 1101 */ printf("2. Gia tri cua c la %d\n", c ); c = a ^ b; /* 49 = 0011 0001 */ printf("3. Gia tri cua c la %d\n", c ); c = ~a; /*-61 = 1100 0011 */ printf("4. Gia tri cua c la %d\n", c ); c = a << 2; /* 240 = 1111 0000 */ printf("5. Gia tri cua c la %d\n", c ); c = a >> 2; /* 15 = 0000 1111 */ printf("6. Gia tri cua c la %d\n", c ); printf("===========================\n"); printf("VietJack chuc cac ban hoc tot! \n"); }
Biên dịch và thực thi chương trình C trên sẽ cho kết quả sau:
Bạn có thể tự mình kiểm tra kết quả.
Đã có app VietJack trên điện thoại, giải bài tập SGK, SBT Soạn văn, Văn mẫu, Thi online, Bài giảng....miễn phí. Tải ngay ứng dụng trên Android và iOS.
Theo dõi chúng tôi miễn phí trên mạng xã hội facebook và youtube:Các bạn có thể mua thêm khóa học JAVA CORE ONLINE VÀ ỨNG DỤNG cực hay, giúp các bạn vượt qua các dự án trên trường và đi thực tập Java. Khóa học có giá chỉ 300K, nhằm ưu đãi, tạo điều kiện cho sinh viên cho thể mua khóa học.
Nội dung khóa học gồm 16 chuơng và 100 video cực hay, học trực tiếp tại https://www.udemy.com/tu-tin-di-lam-voi-kien-thuc-ve-java-core-toan-tap/ Bạn nào có nhu cầu mua, inbox trực tiếp a Tuyền, cựu sinh viên Bách Khoa K53, fb: https://www.facebook.com/tuyen.vietjack
Follow facebook cá nhân Nguyễn Thanh Tuyền https://www.facebook.com/tuyen.vietjack để tiếp tục theo dõi các loạt bài mới nhất về Java,C,C++,Javascript,HTML,Python,Database,Mobile.... mới nhất của chúng tôi.
Các bài học lập trình C phổ biến khác tại VietJack: