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ụ:

     int ketQua;      int a = 10, b = 14;      ketQua = a && b;      cout<<ketQua<<endl;
1234567     intketQua;     inta=10,b=14;     ketQua=a&&b;     cout<<ketQua<<endl;

 và ví dụ:

     int ketQua;      int a = 10, b = 14;      ketQua = a & b;      cout<<ketQua<<endl;
1234567     intketQua;     inta=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.7 / 5 ( 167 votes )

Bài viết liên quan:

  1. Lớp(class) và Đối tượng trong C++
  2. Học lập trình c++: Làm việc với kế thừa trong lập trình c++
  3. [Học lập trình C++] Đa hình trong C++
  4. So sánh Malloc và Calloc trong C

Từ khóa » Toán Tử Or Trong C