necesito ayuda kn este programa en c++ es de convertir binarios a decimales y biceversa
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
main()
{
int a,b,c,d,e,f,g,h,i,j,k,l,dec,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12;
int n;
long bin, p,ca;
int opcion;
printf("\n seleccione opcion\n");
printf(" 1) conversion de numero entero decimal a sistema binario\n");
printf(" 2) conversion de numero binario a sistema decimal\n");
printf(" 3) no ejecuta ninguna accion salir del programa\n");
printf("\nopcion es:\n"); scanf("%d",&opcion);
switch(opcion)
{
case 1:
{
int I;
for(I=1;I>=1;I++)
{
printf("\n\nintroducir entero decimal a convertir binario:(%d)\n",I);
scanf("\n %d",&n);
if(n>0&&n<=4095)
{
a=n%2; /* operadores mod(2) para almacenar residuos*/
x1=n/2;
b=x1%2;
x2=x1/2;
c=x2%2;
x3=x2/2;
d=x3%2;
x4=x3/2;
e=x4%2;
x5=x4/2;
f=x5%2;
x6=x5/2;
g=x6%2;
x7=x6/2;
h=x7%2;
x8=x7/2;
i=x8%2;
x9=x8/2;
j=x9%2;
x10=x9/2;
k=x10%2;
x11=x10/2;
l=x11%2;
x12=x11/2;
printf("el numero (%d) = %d decimal",I,n);
printf(" \nresultado en sistema binario es:");
printf ("%d%d%d%d%d%d%d%d%d%d%d%d\n",l,k,j,i,h,g,f,e,d,c,b,a);
}
else printf("\n introduzca valores positivos entre 0 y 4095");
}
}
break;
case 2:
{
int J;
for(J=1;J>=1;J++)
{
printf("\n\ningrese numero binario %d:",J); scanf("\n%ld",&bin);
int comp=bin%10;
{
if (comp>1)
dec=2;
}
if(dec==2)
{
printf("el numero no es binario");
return 0;
}
if(bin>=0)
{
ca=1;
dec=0;
while(bin>0)
{ p=0;
p=ca*(bin%10);
dec+=p;
ca*=2;
bin/=10; }
printf("el numero (%d) binario",J);
printf("\nen el sistema decimal es %d:",dec);
return 0;
}
else printf("ingrese valores positivos");
}
}
break;
case 3:
printf("\n\n salir gracias por usar c++");
break;
default:
printf("\n\nerror: digite opciones 1,2 o 3");
}
}