首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

二进制,八进制,十进制,十六进制互相转化的C语言源代码2

二进制,八进制,十进制,十六进制互相转化的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");  
  • }  
  • }  
返回列表