#include <stdio.h> #include <stdint.h> union Reg { uint32_t data; uint8_t bytes[4]; }; uint32_t convert_endian(uint32_t value) { int i; Reg r; r.data = value; for (i = 0; i < 2; i++) { uint8_t *p1 = (r.bytes + i); uint8_t *p2 = (r.bytes + 4 - i - 1); int tmp = *p1; *p1 = *p2; *p2 = tmp; } return r.data; } int main() { uint32_t val; scanf("%u", &val); printf("%u", convert_endian(val)); return 0; }
Test Cases
Test Results
Input
305419896
Expected Output
2018915346