#include <stdio.h>
#include <stdint.h>
typedef union {
uint32_t value;
uint8_t bytes[4];
} Register;
void print_bytes(uint32_t input) {
Register reg;
reg.value = input;
for (int i = 0; i < 4; i++) {
printf("%u", reg.bytes[i]);
if(i < 3){
printf(" ");
}
}
}
int main() {
uint32_t num;
scanf("%u", &num);
print_bytes(num);
return 0;
}
Unions allow different types to share the same memory. This is extremely helpful in firmware where byte-wise access to multibyte registers is needed — for UART framing, CRC, SPI/I2C transmission, etc.
Solution Logic:
Input
305419896
Expected Output
120 86 52 18