#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 Approachuse a union typpe definition to swap the bytes
Test Cases
Test Results
Input
305419896
Expected Output
2018915346