#include <stdio.h>
#include <stdint.h>
//using uint8_ to use ussigned integers for num which then finds the binary going from 7 then going down to 0
void print_binary(uint8_t num) {
for (int i = 7; i >= 0; i--) {
printf("%d", (num >> i) & 1);
}
}
void app_main() {
//declaring the three numbers
uint8_t num1 = 18; // 00010010
uint8_t num2 = 39; // 00100111
uint8_t num3 = 145; // 10010001
//showing decimal to binary
printf("Decimal: %d = Binary: ", num1);
//printing the binary
print_binary(num1);
printf("\n");
//showing decimal to binary
printf("Decimal: %d = Binary: ", num2);
print_binary(num2);
printf("\n");
printf("Decimal: %d = Binary: ", num3);
print_binary(num3);
printf("\n");
// Mask representation using bitwise AND and OR
uint8_t mask = 0b11110000; // Example mask
//bit wise and using mask
printf("\nApplying bitwise AND mask (11110000) to numbers:\n");
printf("18 & mask: %u = ", num1 & mask);
print_binary(num1 & mask);
printf("\n");
printf("39 & mask: %u = ", num2 & mask);
print_binary(num2 & mask);
printf("\n");
printf("145 & mask: %u = ", num3 & mask);
print_binary(num3 & mask);
printf("\n");
printf("\nApplying bitwise OR mask (11110000) to numbers:\n");
printf("18 | mask: %u = ", num1 | mask);
print_binary(num1 | mask);
printf("\n");
printf("39 | mask: %u = ", num2 | mask);
print_binary(num2 | mask);
printf("\n");
printf("145 | mask: %u = ", num3 | mask);
print_binary(num3 | mask);
printf("\n");
}Loading
esp32-s3-devkitc-1
esp32-s3-devkitc-1