#include<stdio.h>
#include<string.h>
void dtob(int n)
{ int a[33],i=0,j;
while(n!=0)
{a[i]=n&1;n=n>>1;i++;}
for(j=i-1;j>=0;j--)
printf("%d",a[j]);
printf("#B");
}
void oto()
{ int n;
printf("请输入八进制数:\n");
scanf("%o",&n);
printf("%o#O",n);
dtob(n);
printf("%d#D %x#H\n",n,n);
}
void dto()
{ int n;
printf("请输十进制数:\n");
scanf("%d",&n);
printf("%d#D",n);
dtob(n);
printf("%o#O %x#H\n",n,n);
}
void hto()
{ int n;
printf("请输入十六进制数:\n");
scanf("%x",&n);
printf("%x#H",n);
dtob(n);
printf("%o#O %d#D\n",n,n);
}
void bto()
{ char a[33];int i,n,x=0;
printf("请输入二进制数:\n")
getchar();
gets(a);puts(a);
n=strlen(a);
for(i=0;i<n;i++)
x=x*2+a[i]-48;
printf("%s#B%o#O%d#D%x#H\n",a,x,x,x);
}
void main()
{ int n;
while(1)
{printf("二进制:B 八进制:O 十进制:D 十六进制:H\n");
printf("1.B->O,D,H\n");
printf("2.O->B,D,H\n");
printf("3.D->B,O,H\n");
printf("4.H->B,O,D\n");
printf("0.EXIT\n");
scanf("%d",&n);
switch(n)
{ case 0:exit();
case 1:bto();break;
case 2:oto();break;
case 3:dto();break;
case 4:hto();break;
default:printf("input error\n");
}
}
#include<string.h>
void dtob(int n)
{ int a[33],i=0,j;
while(n!=0)
{a[i]=n&1;n=n>>1;i++;}
for(j=i-1;j>=0;j--)
printf("%d",a[j]);
printf("#B");
}
void oto()
{ int n;
printf("请输入八进制数:\n");
scanf("%o",&n);
printf("%o#O",n);
dtob(n);
printf("%d#D %x#H\n",n,n);
}
void dto()
{ int n;
printf("请输十进制数:\n");
scanf("%d",&n);
printf("%d#D",n);
dtob(n);
printf("%o#O %x#H\n",n,n);
}
void hto()
{ int n;
printf("请输入十六进制数:\n");
scanf("%x",&n);
printf("%x#H",n);
dtob(n);
printf("%o#O %d#D\n",n,n);
}
void bto()
{ char a[33];int i,n,x=0;
printf("请输入二进制数:\n")
getchar();
gets(a);puts(a);
n=strlen(a);
for(i=0;i<n;i++)
x=x*2+a[i]-48;
printf("%s#B%o#O%d#D%x#H\n",a,x,x,x);
}
void main()
{ int n;
while(1)
{printf("二进制:B 八进制:O 十进制:D 十六进制:H\n");
printf("1.B->O,D,H\n");
printf("2.O->B,D,H\n");
printf("3.D->B,O,H\n");
printf("4.H->B,O,D\n");
printf("0.EXIT\n");
scanf("%d",&n);
switch(n)
{ case 0:exit();
case 1:bto();break;
case 2:oto();break;
case 3:dto();break;
case 4:hto();break;
default:printf("input error\n");
}
}