重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

c语言函数数制转换,C语言转换函数

C语言数制转换

十进制转化成二进制是用2来展转相处,直到结果为1,然后把从最后的1开始,从下到上,把余数写出就是对应的二进制,如27/2=13...1

站在用户的角度思考问题,与客户深入沟通,找到固原网站设计与固原网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都做网站、成都网站制作、企业官网、英文网站、手机端网站、网站推广、域名注册网站空间、企业邮箱。业务覆盖固原地区。

13/2=6...1

6/2=3....0

3/2=1....1写出来就是11011

c语言 数制转换

唉,研究了一天,碰到对于10进制以上的就实在不会了。计算机不好表示啊。若要表示,就只有用字符数组。但用字符数组又会造成很多麻烦。

我只会写出10以内进制间及16进制的相互转换了。

思前想后,似乎只有这条思路是最为简单的:间接转换!

10以内任意进制先转换为十进制,然后由十进制再转换为新进制。

唉,一直编这题,都烦死了。

不想再把程序写出来了,只提供下思路,留给你自己编吧。

很抱歉,没能帮上你...

课程设计:数制转换(C语言)

#include

stdio.h

#include

stdlib.h

//输入十进制数N和转化的进制数M

void

trans(int

n,int

m)

{

if(n)

{

trans(n/m,m);

if(n%m10)

printf("%c",n%m+'0');

else

printf("%c",n%m-10+'A');

}

}

void

main()

{

int

m,n,x;

char

ch;

printf("给定进制数M:");

scanf("%d",m);

loop:

printf("给定一个%d进制的数X:",m);

fflush(stdin);

//一个M进制的数X转10进制

for(x=0;;)

{

ch=getchar();

if(ch='0'

ch='9')

{

n=ch-'0';

}

else

if(ch='a'

ch='z')

{

n=ch-'a'+10;

}

else

if(ch='A'

ch='Z')

{

n=ch-'A'+10;

}

else

{

break;

}

if(n=m)

{

goto

loop;

}

x=x*m+n;

}

printf("转化成十进制数为:%d\n",x);

printf("给定要转化进制数M:");

scanf("%d",m);

printf("转化成%d进制后的结果为:",m);

trans(x,m);

printf("\n");

}

其他的方法:

trans函数也可以这样写:

void

trans(int

n,int

m)

{

char

str[100];

int

i;

for(i=0;n0;i++)

{

if(n%m10)

{

str[i]=n%m+'0';

}

else

{

str[i]=n%m-10+'A';

}

n=n/m;

}

for(n=i;n0;n--)

{

printf("%c",str[n-1]);

}

}

C语言进制转换

支持zpfloveyfy的分析,程序风格也很好。

我在这给个数制转换的公式:

十进制数N和其他d进制数的转换基于以下公式:

N

=

(N

div

d)

*

d

+

N

mod

d;

其中:div为整除,mod为求余。

例如将10进制1348转化成2504,运算过程如下:

N

Ndiv8

Nmod8

1348

168

4

168

21

21

2

5

2

2

看起来有点乱,因为这里会把原来的格式给打乱。

由最后一列4052可以看出,正好是结果2504的倒数,所以用栈来实现它是最理想不过的了。


本文标题:c语言函数数制转换,C语言转换函数
本文路径:http://cqcxhl.cn/article/hecood.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP