网站首页 > 文章中心 > 其它

c语言函数数制转换

作者:小编 更新时间:2023-10-07 07:19:08 浏览量:74人看过

C语言数制转换

c语言 数制转换

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

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

①.0以内任意进制先转换为十进制,然后由十进制再转换为新进制.

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

c语言函数数制转换-图1

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

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

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

#include

stdio.h

stdlib.h

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

void

trans(int

c语言函数数制转换-图2

n,int

m)

{

if(n)

trans(n/m,m);

if(n%m10)

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

else

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

}

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'

n=ch-'0';

if(ch='a'

ch='z')

n=ch-'a'+10;

if(ch='A'

ch='Z')

n=ch-'A'+10;

break;

if(n=m)

goto

loop;

x=x*m+n;

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

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

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

trans(x,m);

printf("\n");

其他的方法:

trans函数也可以这样写:

str[100];

i;

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

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

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

d)

*

d

+

mod

d;

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

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章