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ụ:
1
2
3
4
5
6
7
int
ketQua
;
int
a
=
10
,
b
=
14
;
ketQua
=
a
&&
b
;
cout
<<
ketQua
<<
endl
;
và ví dụ:
1
2
3
4
5
6
7
int
ketQua
;
int
a
=
10
,
b
=
14
;
ketQua
=
a
&
b
;
cout
<<
ketQua
<<
endl
;
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.
4.8
/
5
(
13
votes
)