#include <stdio.h> #include <stdint.h> uint32_t convert_endian(uint32_t value) { // Write logic to swap bytes uint32_t mask1 = 0xff; uint32_t mask2 = 0xff000000; mask1 = mask1 & value; mask2 = mask2 & value; value = value & 0xffff00; value = value | (mask1<<24) | (mask2>>24); mask1 = 0xff00; mask2 = 0xff0000; mask1 = mask1 & value; mask2 = mask2 & value; value = value & 0xff0000ff; value = value | (mask1<<8) | (mask2>>8); return 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