#include <stdio.h> #include <stdint.h> uint32_t convert_endian(uint32_t value) { // Write logic to swap bytes uint32_t reg = 0; uint32_t mask = 0; // uint4_t cn = 0x01111; // printf("BD: %x\n", value); for(int i = 0; i < 4; i++){ mask = (value & 0xFF); // printf("%d\n", mask); reg |= mask; if(i == 3) continue; reg <<= 8; value >>= 8; // printf("%u %u %u\n",mask ,value, reg); } return reg; } int main() { uint32_t val; scanf("%u", &val); printf("%u", convert_endian(val)); return 0; } // 0001 0010 0011 0100 0101 0110 0111 1000 // Input: 305419896 // Output: 2018915346 // (0x12345678 → 0x78563412) // Input: 1 // Output: 16777216 // (0x00000001 → 0x01000000)
Test Cases
Test Results
Input
305419896
Expected Output
2018915346