#include <stdio.h> #include <stdint.h> typedef union { uint32_t value; uint8_t bytes[4]; } Register; uint32_t convert_endian(uint32_t value) { // Write logic to swap bytes Register r; r.value = value; r.bytes[0] ^= r.bytes[3]; r.bytes[3] ^= r.bytes[0]; r.bytes[0] ^= r.bytes[3]; r.bytes[1] ^= r.bytes[2]; r.bytes[2] ^= r.bytes[1]; r.bytes[1] ^= r.bytes[2]; // for(int i = 0; i < 4; i++){ // printf("%d", r.value); // } return r.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