0
I need to initialize a matrix that contains the binary values from 0 to the input value, which in this case is 15. The base conversion and the storage of these values works well until the number 8. However, from the 9 line, where the last digit should be 1, only zero is printed and this remains until the end of execution. Here’s the code I’m using:
int conversor(entrada)
{
aux1=entrada;
do
{
/*
Na função usei o modelo da divisão continua para converter um número, que se dá da seguinte maneira:
Usando um inteiro na base decimal, é divido constantemente até que o divisor de zero
O resto de cada uma dessas divisões é apenas 0 ou 1, e ordendando da direita para a esquerda,
o resultado é em binario
*/
for (i=entrada; i>=0; i--)
{
do
{
if (aux==0)
{
saida[i][aux]=entrada%2;
divisor=entrada/2; //Primeira iteração, usa o valor de entrada ainda
}
else
{
saida[i][aux]=divisor%2;
divisor=divisor/2; //Termina de dividir o numero
}
aux++; //Proxima coluna
}
while (divisor>0); //Faz a conta enquanto o divisor for maior que zero
}
entrada--; //Passa para proxima linha
aux=0; //Zera auxiliar
}
while (entrada>0);
for (j=0; j<=aux1; j++)
{
for (i=3; i>=0; i--)
{
printf ("%d ",saida[j][i]);
}
printf("\n");
}
}
And here is the result:
0 0 0 0
0 0 0 1
0 0 1 0
0 0 1 1
0 1 0 0
0 1 0 1
0 1 1 0
0 1 1 1
1 0 0 0
1 0 0 0
1 0 1 0
1 0 1 0
1 1 0 0
1 1 0 0
1 1 1 0
1 1 1 0
I have tried to test array initialization only to contain the binary value of 9, 1001, separately but when I run this function this error happens. What I’m doing wrong?
What is
entrada
?typedef
,#define
, you forgot to write the variable type? And why is there no variable declaration? They are all global?– user142154