byte valueA = 0b1010; // binary 10
byte valueB = 0b0110; // binary 6
byte result;
void setup() {
Serial.begin(9600);
for (int i = 8; i <= 11; i++) pinMode(i, OUTPUT);
}
void loop() {
result = valueA & valueB; // bitwise AND
showBits(result);
delay(1000);
result = valueA | valueB; // bitwise OR
showBits(result);
delay(1000);
result = valueA ^ valueB; // bitwise XOR
showBits(result);
delay(1000);
result = ~valueA; // bitwise NOT
showBits(result);
delay(2000);
}
void showBits(byte val) {
for (int i = 0; i < 4; i++) {
digitalWrite(8 + i, bitRead(val, i));
}
Serial.print("Result: ");
Serial.println(val, BIN);
}