Sự khác nhau giữa toán tử logic && và & trong C/C++

Như các bạn đã biết, ký hiệu && và || là toán tử logic AND và OR trong ngôn ngữ lập trình C/C++. Nhưng các bạn đã bao giờ để ý tới ký hiệu & và | chưa? Đó cũng là ký hiệu của toán tử AND và OR nhưng sự khác nhau giữa các toán tử &&, || và &, | là gì?

Có rất nhiều các bạn học lập trình C/C++ nhưng hay nhầm lẫn và không xác định được sự khác nhau giữa các toán tử &&, || và &, |.

Vậy đâu là sự khác nhau, chúng ta hãy cùng xem ví dụ:

 và ví dụ:

Với ví dụ thứ nhất: kết quả hiển thị lên màn hình console là: 1 còn ở ví dụ 2 kết quả hiển thị là 10.

Vậy đâu là sự khác biệt giữa chúng.

Với toán tử && nó sẽ trả về kết quả là true hoặc false (tương ứng với giá trị 1 hoặc 0). Do a = 10 và b = 14 đều khác không nên kết quả của biến ketQua = true (hay có giá trị là 1) còn ở ví dụ 2 đó là phép AND theo bit. Vì vậy chúng ta phải đổi giá trị của a và b từ hệ cơ số 10 sang hệ đếm cơ số 2(hệ nhị phân hay binary). Giá trị a = 10 = 1010 còn giá trị của biến b = 14 = 1110, kết quả của toán tử & là: 1010 = 10(trong hệ đếm cơ số 10), vì vậy kết quả của ví dụ 2 là 10.

 Tương tự với toán tử &&, & là toán tử ||, |, các bạn có thể tự đưa ra ví dụ để làm rõ hơn.

 Qua hai ví dụ này, các bạn cần chú ý sự khác biệt giữa toán tử && và &, || và | để tránh những nhầm lẫn đáng tiếc xảy ra trong chương trình.

 

Nhận xét