关于进制转换程序的c语言代码,有点看不懂。

关于进制转换程序的c语言代码,有点看不懂。,第1张

有一个预备知识,就是一个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算吗等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9876579.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存