Code

#include <stdio.h>
#include <stdint.h>

void convert_to_big_endian(uint32_t value, uint8_t arr[4]) {
    // Your code here
    for (int i = 0; i < 4; i++) {
        arr[i] = 0;
    }
    for(int i=0;i<32;i++){
        if((i>=0) && (i<8) && (value & (1<<i))){
            arr[3] |= (1<<i);
        }
        if((i>=8) && (i<16) && (value & (1<<i))){
            arr[2] |= (1<<(i-8));
        }
        if((i>=16) && (i<24) && (value & (1<<i))){
            arr[1] |= (1<<(i-16));
        }
        if((i>=24) && (i<32) && (value & (1<<i))){
            arr[0] |= (1<<(i-24));
        }
    }
}

int main() {
    uint32_t value;
    uint8_t arr[4];
    scanf("%u", &value);
    convert_to_big_endian(value, arr);
    for (int i = 0; i < 4; i++) {
        printf("%u", arr[i]);
        if(i<3){
            printf(" ");
        }
    }
    return 0;
}

Solving Approach

 

 

 

Upvote
Downvote
Loading...

Input

305419896

Expected Output

18 52 86 120