How to do Bitwise operations in Dart
In Dart it is possible to do Bitwise Operations with int and bool types.
AND
Checks if the left and right side are both true. Learn more.
// int print(0 & 1); // 0 print(1 & 0); // 0 print(1 & 1); // 1 print(0 & 0); // 0
// bool print(false & true); // false print(true & false); // false print(true & true); // true print(false & false); // false
OR
Inclusive
Checks if either the left or right side are true. Learn more.
// int print(0 | 1); // 1 print(1 | 0); // 1 print(1 | 1); // 1 print(0 | 0); // 0
// bool print(false | true); // true print(true | false); // true print(true | true); // true print(false | false); // false
Exclusive
Checks if both the left or right side are true but not both. Learn more.
// int print(0 ^ 1); // 1 print(1 ^ 0); // 1 print(1 ^ 1); // 0 print(0 ^ 0); // 0
// bool print(false ^ true); // true print(true ^ false); // true print(true ^ true); // false print(false ^ false); // false
NAND
Negated AND operation.
// int
print((0 & 1) & 1); // 1
print((1 & 0) & 1); // 1
print((1 & 1) & 1); // 0
print((0 & 0) & 1); // 1
// bool print(!(false & true)); // true print(!(true & false)); // true print(!(true & true)); // false print(!(false & false)); // true
NOR
Negated inclusive OR operation.
// int
print((0 | 1) & 1); // 0
print((1 | 0) & 1); // 0
print((1 | 1) & 1); // 0
print((0 | 0) & 1); // 1
// bool print(!(false | true)); // false print(!(true | false)); // false print(!(true | true)); // false print(!(false | false)); // true
XNOR
Negated exclusive OR operation.
// int
print((0 ^ 1) & 1); // 0
print((1 ^ 0) & 1); // 0
print((1 ^ 1) & 1); // 1
print((0 ^ 0) & 1); // 1
// bool print(!(false ^ true)); // false print(!(true ^ false)); // false print(!(true ^ true)); // true print(!(false ^ false)); // true