Convertir binario a decimal


# include <stdio.h>
# include <conio.h>
# include <math.h>
# include <string.h>

void convertir_binario(int a);
long convertir_decimal(char B[16]);

void main()
{
long int N=0,SUM=0,COM=0;
int i=0;
char B[15];

clrscr();
i=1;



printf("\n VALOR BINARIO: ");
printf("\t\t VALOR DECIMAL : ");
printf(" \n============================================================= ");


do{
printf("\n # %d: ",i);
scanf("%s",&B);
gotoxy(34,i+3);
N=convertir_decimal(B);
SUM=SUM+N;
i++;
}while(N !=0);


while( SUM>=65535)
{
SUM=SUM-65535;
}

printf("\n\n Suma :");
convertir_binario(SUM);
gotoxy(34,i+4);
printf("Suma : %u  \n",SUM);


COM=65535-SUM;

printf("\n\n Complemento:");
convertir_binario(COM);

gotoxy(34,i+7);
printf("Complemento: %u  \n",COM);

getch();

}

void convertir_binario(int a)
{
int b,m,cont,nbits;
unsigned mascara;

nbits=8*sizeof(int);
m=0x1<<(nbits-1);

mascara=m;
for(cont=1;cont<=nbits;cont++)
{
b=(a & mascara) ? 1 : 0;
printf("%x",b);
if(cont % 8 == 0)
printf(" ");
mascara>>=1;
}
}

long convertir_decimal(char B[16])
{
int i,b;
long int SUM;
b=2;
SUM=0;

for(i=0;i<=strlen(B)-1;i++)
{
if(B[strlen(B)-1-i]=='1')
SUM=SUM + pow(b,i);
}
printf("%u",SUM);
return(SUM);

}

No response to “Convertir binario a decimal”