#include <stdio.h> #include <stdint.h> void swap(uint8_t *a, uint8_t *b){ int temp = *a; *a = *b; *b = temp; } void reverse(uint8_t*arr, uint32_t n){ uint8_t left = 0, right = n-1; while(left<right){ swap(&arr[left],&arr[right]); left++; right--; } } void convert_to_big_endian(uint32_t value, uint8_t arr[4]) { // Your code here uint32_t mask = 0xFF; for(int i=0;i<4;i++){ arr[i] = value & mask; value >>= 8; } reverse(arr,4); } 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; }
Test Cases
Test Results
Input
305419896
Expected Output
18 52 86 120