二进制,八进制,十进制,十六进制互相转化的C语言源代码2
- UID
- 872235
|
二进制,八进制,十进制,十六进制互相转化的C语言源代码2
- ///////以下为: 八进制转换为二进制,十进制,十六进制.
- void O_B(int a)
- {
- int i,j,k,s=0;
- int result=0;
- int p[30];
- for(i=1;a!=0;i*=8)
- {if(a%10>7)
- {
- s=1;
- break;
- }
- else
- {
- result+=(a%10)*i;
- a=a/10;
- }
- }
- for(j=0;result!=0;j++)
- {
- p[j]=result%2;
- result=result/2;
- }
- if(s==1)
- printf("您的输入有误!请重新输入\n");
- else
- {
- printf("\n转换后的数为:");
- for(k=j-1;k>=0;k--)
- {
- printf("%d",p[k]);
- }
- printf("\n");
- }
- }
- void O_D(int a)
- {
- int i,s=0;
- int result=0;
- for(i=1;a!=0;i*=8)
- {
- if(a%10>7)
- {
- s=1;
- break;
- }
- else
- {
- result+=(a%10)*i;
- a=a/10;
- }
- }
- if(s==1)
- printf("您的输入有误!请重新输入\n");
- else
- {
- printf("\n转换后的数为:%d\n",result);
- }
- }
- void O_X(int a)
- {
- int i,j,k,s=0;
- char p[30];
- int result=0;
- for(i=1;a!=0;i*=8)
- {
- if(a%10>7)
- {
- s=1;
- break;
- }
- else
- {
- result+=(a%10)*i;
- a=a/10;
- }
- }
- for(j=0;result!=0;j++)
- {
- p[j]=result%16;
- result=result/16;
- if(p[j]<10)
- p[j]+=48;
- else
- {
- switch(p[j])
- {
- case 10: p[j]='A';
- break;
- case 11: p[j]='B';
- break;
- case 12: p[j]='C';
- break;
- case 13: p[j]='D';
- break;
- case 14: p[j]='E';
- break;
- case 15: p[j]='F';
- break;
- }
- }
- }
- if(s==1)
- printf("您的输入有误!请重新输入\n");
- else
- {
- printf("\n转换后的数为:");
- for(k=j-1;k>=0;k--)
- {
- printf("%c",p[k]);
- }
- printf("\n");
- }
- }
- ///////以下为: 十六进制转换为十进制,二进制,八进制.
- void X_D(char a[],int k)
- {
- int i,j,s=0;
- int result=0;
- int b[50];
- for(i=0;i<k;i++)
- {
- if(a<='9'&&a>='1')
- { b=a-48;
- }
- else
- {
- switch(a)
- {
- case
'A': b=10; - break;
- case
'B': b=11; - break;
- case
'C': b=12; - break;
- case
'D': b=13; - break;
- case
'E': b=14; - break;
- case
'F': b=15; - break;
- case
'a': b=10; - break;
- case
'b': b=11; - break;
- case
'c': b=12; - break;
- case
'd': b=13; - break;
- case
'e': b=14; - break;
- case
'f': b=15; - break;
- default: s=1;
- }
- }
- }
- for(i=1,j=k-1;j>=0;j--,i*=16)
- {
- result+=b[j]*i;
- }
- if(s==1)
- printf("您的输入有误!请重新输入\n");
- else
- {
- printf("\n转换后的数为:%d",result);
- }
- }
- void X_B(char a[],int k)
- {
- int i,j,s=0;
- int result=0;
- int b[50];
- int p[30];
- for(i=0;i<k;i++)
- {
- if(a<='9'&&a>='1')
- b=a-48;
- else
- {
- switch(a)
- {
- case
'A': b=10; - break;
- case
'B': b=11; - break;
- case
'C': b=12; - break;
- case
'D': b=13; - break;
- case
'E': b=14; - break;
- case
'F': b=15; - break;
- case
'a': b=10; - break;
- case
'b': b=11; - break;
- case
'c': b=12; - break;
- case
'd': b=13; - break;
- case
'e': b=14; - break;
- case
'f': b=15; - break;
- default: s=1;
- }
- }
- }
- for(j=k-1,i=1;j>=0;j--,i*=16)
- {
- result+=b[j]*i;
- }
- for(j=0;result!=0;j++)
- {
- p[j]=result%2;
- result=result/2;
- }
- if(s==1)
- printf("您的输入有误!请重新输入\n");
- else
- {
- printf("\n转换后的数为:");
- for(k=j-1;k>=0;k--)
- {
- printf("%d",p[k]);
- }
- printf("\n");
- }
- }
- void X_O(char a[],int k)
- {
- int i,j,s=0;
- int result=0;
- int b[30];
- int p[30];
- for(i=0;i<k;i++)
- {
- if(a<='9'&&a>='1')
- b=a-48;
- else
- {
- switch(a)
- {
- case
'A': b=10; - break;
- case
'B': b=11; - break;
- case
'C': b=12; - break;
- case
'D': b=13; - break;
- case
'E': b=14; - break;
- case
'F': b=15; - break;
- case
'a': b=10; - break;
- case
'b': b=11; - break;
- case
'c': b=12; - break;
- case
'd': b=13; - break;
- case
'e': b=14; - break;
- case
'f': b=15; - break;
- default: s=1;
- }
- }
- }
- for(j=k-1,i=1;j>=0;j--,i*=16)
- {
- result+=b[j]*i;
- }
- for(j=0;result!=0;j++)
- {
- p[j]=result%8;
- result=result/8;
- }
- if(s==1)
- printf("您的输入有误!请重新输入\n");
- else
- {
- printf("\n转换后的数为:");
- for(k=j-1;k>=0;k--)
- {
- printf("%d",p[k]);
- }
- printf("\n");
- }
- }
|
|
|
|
|
|