#include <stdio.h> #include <stdint.h> union Num { uint32_t value; struct { uint8_t byte1; uint8_t byte2; uint8_t byte3; uint8_t byte4; } bytes; }; uint32_t convert_endian(uint32_t value) { // Write logic to swap bytes Num num; num.value = value; int tmp = num.bytes.byte1; num.bytes.byte1 = num.bytes.byte4; num.bytes.byte4 = tmp; tmp = num.bytes.byte2; num.bytes.byte2 = num.bytes.byte3; num.bytes.byte3 = tmp; return num.value; } int main() { uint32_t val; scanf("%u", &val); printf("%u", convert_endian(val)); return 0; }
Test Cases
Test Results
Input
305419896
Expected Output
2018915346