有一个预备知识,就是一个n进制数X,X除以n后的结果就是它去掉了最低位。以十进制为例,1234/10=123,就是把最低位去掉了。其它进制下无一不是如此(不管它的最低位是几)。
还有,X%n就是取出它在n进制下,最低位上的数字。还是以1234为例,1234%10=4。
void dec2n(int x,int n)
{if(x>=n)dec2n(x/n,n); //这句话就是说,若x是一位以上的n进制数,则先处理它的除末位外的前几位数。
printf("%d",x%n); //这句,就是输出x在n进制下的末位数
}
这段代码你试试,由于取值范围的限制,只能实现8位二进制的转换
你可以试试扩大取值范围,加以相应变化
个人能力有限,抛砖引玉,希望能给你点启发。。。
#include<mathh>
#include <stdioh>
void main()
{int a,b=1,c,d,e;
int i,j=0,num[8],s[8];
char zh[8];
int shuju(int x);
scanf("%d",&a);
/实现二进制的分解输入,把二进制的每一位数值导入到数组当中/
if(-1<a&&a<11111112)
{for(i=0;i<8;i++)
{b=10b;
c=b/10;
d=a/c;
num[i]=d%10;
if(num[i]>1)
{printf("输入错误,不符合二进制\n");
e=1;
break;}}}
else{printf("输入错误,超出范围\n");
e=1;}
/对数组中的值进行重组,每4位编成一个四位数与子函数实现对比调用/
if(e!=1)
{for(i=0;i<8;i=i+4,j++)
{s[j]=num[i]+num[i+1]10+num[i+2]100+num[i+3]1000;
zh[j]=shuju(s[j]);
}
for(;j-1>=0;j--)
{if(zh[j-1]<10) printf("%d",zh[j-1]);
else printf("%c",zh[j-1]);}
printf("\n");
};
}
/对比调用/
int shuju(int x)
{char y;
switch(x)
{case 0: y=0;break;
case 1: y=1;break;
case 10: y=2;break;
case 11: y=3;break;
case 100: y=4;break;
case 101: y=5;break;
case 110: y=6;break;
case 111: y=7;break;
case 1000: y=8;break;
case 1001: y=9;break;
case 1010: y='A';break;
case 1011: y='B';break;
case 1100: y='C';break;
case 1101: y='D';break;
case 1110: y='E';break;
case 1111: y='F';break;
}
return(y);}
通用二进制程序就是一个包,Bundle,又译束,是Mac
OS
X系统中一种应用程序格式,实际上是特殊的文件夹可以直接双击来运行,文件夹中包含主程序、各种资源、文档和帮助文件等,使得Mac
OS
X中的软件一般无需安装,复制到硬盘上即可运行,且易于本地化和国际化。Carbon和Cocoa是两种Mac平台的应用程序框架(类似于MFC、VCL、GTK+、Qt等),前者能兼容Mac
OS
8-9的API,因此能够生成可以运行于Mac
OS
Classic和OS
X的应用程序,后者则只能生成OS
X程序,但可能能够运行于IBM
PowerPC
RISC芯片和Intel
x86
CISC芯片两种构架的Mac
OS
X系统中,即Universal
Binary
——通用二进制程序。]
比如10进制的15转换2进制:
用15除以2,商为7,余数为1,
再用7除以2,商为3,余数为1,
再用3除以2,商为1,余数为1,
再用1除以2,商为0,余数为1,
最后吧余数倒过来排列就为二进制的1111(即商为0时的1,商为1时的1,商为3时的1,商为7时的1)
二进制转十进制
以二进制的1111转十进制为例:
把二进制的1111看成是十进制的1111即110^3
110^2
110^1
1
然后把10变成2,即12^3
12^2
12^1
1=15
给你打个简单的,我已经测试了,
#include<stdioh>
void main()
{
int a;
printf("请输入一个十进制数\n");
scanf("%d",&a);
printf("该数的十六进制是:%x\n",a);
printf("该数的八进制是:%o\n",a);
}
1、在PLC编程时,要实现十进制转十六进制的程序,可以使用一些指令来实现。具体步骤如下:首先,将十进制数据转换为二进制表示。
2、其次,将二进制数据转换为八进制表示。
3、最后,将八进制数据转换为十六进制表示。
以上就是关于关于进制转换程序的c语言代码,有点看不懂。全部的内容,包括:关于进制转换程序的c语言代码,有点看不懂。、C语言将二进制数N转换成16进制的程序、什么是二进制程序.exe算吗等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)