#include <stdio.h>
#include <stdint.h>
typedef union {
uint32_t value;
uint8_t bytes[4];
} Reg32;
uint32_t convert_endian(uint32_t value) {
// Write logic to swap bytes
Reg32 reg;
uint8_t hold;
reg.value= value;
hold= reg.bytes[0];
reg.bytes[0]= reg.bytes[3];
reg.bytes[3]= hold;
hold= reg.bytes[1];
reg.bytes[1]= reg.bytes[2];
reg.bytes[2]= hold;
return reg.value;
}
int main() {
uint32_t val;
scanf("%u", &val);
printf("%u", convert_endian(val));
return 0;
}
Solving Approach
use a union typpe definition to swap the bytes