All submissions

Little Endian to Big Endian

Code

#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;
}

Solving Approach


 

Loading...

Input

305419896

Expected Output

2018915346