Boolean Operators

Các toán tử Boolean trong Arduino

Toán tử Boolean là các toán tử dùng để xử lý giá trị đúng (true) hoặc sai (false). Các toán tử này thường được sử dụng trong các câu lệnh điều kiện để kiểm tra các điều kiện logic.

Toán tử Mô tả Ví dụ và giải thích
&& Logical AND (Phép AND logic) Trả về true nếu cả hai điều kiện đều đúng.
! Logical NOT (Phép phủ định logic) Đảo ngược giá trị của điều kiện, nếu là true thì trở thành false, và ngược lại.
|| Logical OR (Phép OR logic) Trả về true nếu ít nhất một trong các điều kiện đúng.

Giải thích chi tiết và ví dụ:

  1. && (Logical AND - Phép AND logic):

    • Mô tả: Toán tử này trả về true chỉ khi cả hai điều kiện đều đúng. Nếu có một điều kiện sai, kết quả sẽ là false.
    • Ví dụ:

      int a = 5;
      int b = 10;
      
      if (a > 3 && b < 15) {
      // Cả hai điều kiện đều đúng, nên sẽ vào trong câu lệnh này
      digitalWrite(LED_BUILTIN, HIGH);
      }
    • Trong ví dụ trên, cả a > 3b < 15 đều đúng, vì vậy LED sẽ sáng.
  2. ! (Logical NOT - Phép phủ định logic):

    • Mô tả: Toán tử ! đảo ngược giá trị của một điều kiện. Nếu điều kiện là true, toán tử ! sẽ biến nó thành false và ngược lại.
    • Ví dụ:

      bool isRaining = false;
      
      if (!isRaining) {
      // Điều kiện isRaining là false, nên phủ định nó thành true và vào trong câu lệnh
      digitalWrite(LED_BUILTIN, HIGH);
      }
    • Ở đây, isRainingfalse, nhưng khi sử dụng toán tử !, giá trị của nó trở thành true, vì vậy LED sẽ sáng.
  3. || (Logical OR - Phép OR logic):

    • Mô tả: Toán tử này trả về true nếu ít nhất một trong các điều kiện là đúng. Nếu tất cả các điều kiện đều sai, kết quả sẽ là false.
    • Ví dụ:

      int a = 5;
      int b = 2;
      
      if (a > 3 || b > 3) {
      // Vì a > 3 đúng, nên toàn bộ điều kiện là true và vào trong câu lệnh
      digitalWrite(LED_BUILTIN, HIGH);
      }
    • Trong ví dụ này, điều kiện a > 3 là đúng, vì vậy toán tử || trả về true, dù điều kiện b > 3 là sai. LED sẽ sáng.

Tóm tắt các toán tử Boolean:

Toán tử Mô tả Ví dụ
&& Phép AND logic, trả về true khi cả hai điều kiện đều đúng. if (a > 3 && b < 15)
! Phép phủ định logic, đảo ngược giá trị điều kiện. if (!isRaining)
|| Phép OR logic, trả về true nếu ít nhất một điều kiện đúng. if (a > 3 || b > 3)

Các toán tử này giúp bạn xây dựng các câu lệnh điều kiện phức tạp trong chương trình Arduino, giúp kiểm tra các trạng thái và hành động dựa trên kết quả logic.

Compound Operators

Các toán tử hợp nhất (Compound Operators) trong Arduino

Các toán tử hợp nhất (compound operators) là các toán tử giúp thực hiện các phép toán và gán giá trị một cách ngắn gọn và hiệu quả hơn. Chúng giúp giảm bớt sự lặp lại trong mã nguồn và cải thiện tính dễ đọc của chương trình.

Dưới đây là bảng mô tả và ví dụ về các toán tử hợp nhất trong Arduino:

Toán tử Mô tả Ví dụ và giải thích
+= Compound addition (Cộng hợp nhất) Tăng giá trị của biến lên một số và gán lại cho biến đó.
&= Compound bitwise AND (AND hợp nhất) Thực hiện phép AND bitwise với giá trị hiện tại của biến và giá trị sau dấu &, rồi gán lại cho biến đó.
|= Compound bitwise OR (OR hợp nhất) Thực hiện phép OR bitwise với giá trị hiện tại của biến và giá trị sau dấu |, rồi gán lại cho biến đó.
^= Compound bitwise XOR (XOR hợp nhất) Thực hiện phép XOR bitwise với giá trị hiện tại của biến và giá trị sau dấu ^, rồi gán lại cho biến đó.
/= Compound division (Chia hợp nhất) Chia giá trị của biến cho một số và gán lại kết quả cho biến đó.
*= Compound multiplication (Nhân hợp nhất) Nhân giá trị của biến với một số và gán lại kết quả cho biến đó.
%= Compound remainder (Phần dư hợp nhất) Lấy phần dư khi chia giá trị của biến cho một số và gán lại kết quả cho biến đó.
-= Compound subtraction (Trừ hợp nhất) Trừ một giá trị khỏi biến và gán lại kết quả cho biến đó.
-- Decrement (Giảm giá trị) Giảm giá trị của biến đi một đơn vị.
++ Increment (Tăng giá trị) Tăng giá trị của biến lên một đơn vị.

Giải thích chi tiết và ví dụ:

  1. += (Compound addition):

    • Mô tả: Thực hiện phép cộng và gán lại kết quả vào biến ban đầu.
    • Ví dụ:
      int a = 5;
      a += 3;  // Tương đương với a = a + 3;
      // a giờ sẽ có giá trị là 8.
  2. &= (Compound bitwise AND):

    • Mô tả: Thực hiện phép AND bitwise và gán lại kết quả vào biến.
    • Ví dụ:
      byte a = 5;  // 0101 trong nhị phân
      a &= 3;      // 0011 trong nhị phân, kết quả là 0001, và a sẽ có giá trị 1.
  3. |= (Compound bitwise OR):

    • Mô tả: Thực hiện phép OR bitwise và gán lại kết quả vào biến.
    • Ví dụ:
      byte a = 5;  // 0101 trong nhị phân
      a |= 3;      // 0011 trong nhị phân, kết quả là 0111, và a sẽ có giá trị 7.
  4. ^= (Compound bitwise XOR):

    • Mô tả: Thực hiện phép XOR bitwise và gán lại kết quả vào biến.
    • Ví dụ:
      byte a = 5;  // 0101 trong nhị phân
      a ^= 3;      // 0011 trong nhị phân, kết quả là 0110, và a sẽ có giá trị 6.
  5. /= (Compound division):

    • Mô tả: Thực hiện phép chia và gán lại kết quả vào biến.
    • Ví dụ:
      int a = 10;
      a /= 2;  // Tương đương với a = a / 2;
      // a giờ sẽ có giá trị là 5.
  6. *= (Compound multiplication):

    • Mô tả: Thực hiện phép nhân và gán lại kết quả vào biến.
    • Ví dụ:
      int a = 5;
      a *= 2;  // Tương đương với a = a * 2;
      // a giờ sẽ có giá trị là 10.
  7. %= (Compound remainder):

    • Mô tả: Thực hiện phép lấy phần dư và gán lại kết quả vào biến.
    • Ví dụ:
      int a = 10;
      a %= 3;  // Tương đương với a = a % 3;
      // a giờ sẽ có giá trị là 1 (phần dư của 10 chia cho 3).
  8. -= (Compound subtraction):

    • Mô tả: Thực hiện phép trừ và gán lại kết quả vào biến.
    • Ví dụ:
      int a = 10;
      a -= 4;  // Tương đương với a = a - 4;
      // a giờ sẽ có giá trị là 6.
  9. -- (Decrement):

    • Mô tả: Giảm giá trị của biến đi một đơn vị.
    • Ví dụ:
      int a = 5;
      a--;  // Tương đương với a = a - 1;
      // a giờ sẽ có giá trị là 4.
  10. ++ (Increment):

    • Mô tả: Tăng giá trị của biến lên một đơn vị.
    • Ví dụ:
      int a = 5;
      a++;  // Tương đương với a = a + 1;
      // a giờ sẽ có giá trị là 6.

Tóm tắt các toán tử hợp nhất:

Toán tử Mô tả Ví dụ
+= Cộng hợp nhất a += 3;
&= AND hợp nhất bitwise a &= 3;
|= OR hợp nhất bitwise a |= 3;
^= XOR hợp nhất bitwise a ^= 3;
/= Chia hợp nhất a /= 2;
*= Nhân hợp nhất a *= 2;
%= Phần dư hợp nhất a %= 3;
-= Trừ hợp nhất a -= 4;
-- Giảm giá trị một đơn vị a--;
++ Tăng giá trị một đơn vị a++;