Estou usando a abordagem de divisão para converter um número inteiro unsigned int para binário. Tenho o seguinte código. No entanto, não obtenho nenhuma saída do programa após compilar e executar (só obtenho escape de nova linha).
#include <stdio.h>
/*
unsigned int is 0 or greater than 0
convert unsigned int into binary.
*/
const int ARRAY_SIZE = 100;
void reverseCharArray(char *x, int len) {
for (int end = len - 1, beg = 0; beg < end; end--, beg++) {
char temp = x[beg];
x[beg] = x[end];
x[end] = temp;
}
}
void convertWholeNumberToBinary(unsigned int x, char *result) {
int i = 0;
while (x != 0) {
result[i] = x % 2;
x = x / 2;
i++;
}
reverseCharArray(result, ARRAY_SIZE);
}
int main() {
char result[ARRAY_SIZE];
convertWholeNumberToBinary(294, result);
// 100100110
printf("%s\n", result);
return 0;
}
A saída desejada é "100100110" quando a entrada é 294. Eu esperava que o stdout mostrasse "100100110". Sei que estou esquecendo de algo, mas não consigo entender no momento.