Olá, estava criando um multiplicador binário, mas quando ele mostra o resultado, sempre dá 0.
Só coloquei a função, pois esta recebe 1 vetor contendo o número binário (vet1, o multiplicando), um vetor para armazenar o resultado (vet3) e o multiplicador (n).
ci seria o Carry In e co seria o Carry Out.
Abaixo segue o código:
int multid (int vet1 [], int vet3[], int n){
int cont, cont2, cont3, ci, co;
ci=0;
co=0;
for (cont2=n; cont2>=0; cont2--){
ci=0;
co=0;
for (cont=9; cont>=0; cont--) {
if (ci == 0){
vet3[cont] = vet3[cont]+vet1[cont];
if (vet3[cont]==2){
vet3[cont] = 0;
co = 1;
ci = co;
}else{
if (vet3[cont]+vet1[cont]==1){
vet3[cont] = 1;
co = 0;
ci = co;
}else{
vet3[cont] = 0;
co = 0;
ci= co;
}
}
}else{
vet3[cont]= vet3[cont]+ vet1[cont] + ci;
if (vet3[cont]==3){
vet3[cont]= 1;
co = 1;
ci = co;
}else{
if (vet3[cont]==2){
vet3[cont]= 0;
co = 1;
ci = co;
}else{
vet3[cont]=1;
co = 0;
ci = co;
}
}
}
}
}
for (cont3=0; cont3<=9; cont3++) {
printf ("%d", vet3[cont3]);
}
printf ("\n");
return;
}
Pergunta
xMtAx
Olá, estava criando um multiplicador binário, mas quando ele mostra o resultado, sempre dá 0.
Só coloquei a função, pois esta recebe 1 vetor contendo o número binário (vet1, o multiplicando), um vetor para armazenar o resultado (vet3) e o multiplicador (n).
ci seria o Carry In e co seria o Carry Out.
Abaixo segue o código:
Obrigado desde já :)
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.