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;
} Obrigado desde já :)