重庆分公司,新征程启航

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

c语言函数数制转换 c语言用函数转换大小写

c语言 数制转换

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

成都创新互联长期为1000+客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为五华企业提供专业的成都网站设计、做网站,五华网站改版等技术服务。拥有10多年丰富建站经验和众多成功案例,为您定制开发。

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

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

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

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

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

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

C语言中怎样调用函数将十进制转换成二进制?

1、打开visualC++6.0-文件-新建-文件-C++SourceFile。

2、输入预处理命令和主函数:

#includestdio.h           /*输入输出头文件*/

voidmain()/*空类型:主函数*/

3、定义变量和数组的数据类型并输入一个十进制:

intb[16],x,k,r,i;/*定义变量和数组的数据类型为整型*/

printf("输入一个十进制:");/*输出文字提示*/

scanf("%d",x);         /*输入一个十进制数字*/

k=-1;/*将-1赋给k*/

4、用除R取余倒计法将十进制的数转化成二进制的数:

do/*用循环将十进制的数转化成二进制的数*/

{

r=x%2;/*用除R取余倒计法计算二进制*/

b[++k]=r;/*将值赋给数组*/

x/=2;/*将原数除2*/

}while(x=1);

5、输出结果:

for(i=k;i=0;i--)        /*将上面倒计的数正回来*/

printf("%d",b[i]);/*输出结果*/

printf("\n");

6、完整的源代码:

#includestdio.h           /*输入输出头文件*/

voidmain()/*空类型:主函数*/

{

intb[16],x,k,r,i;/*定义变量和数组的数据类型为整型*/

printf("输入一个十进制:");/*输出文字提示*/

scanf("%d",x);         /*输入一个十进制数字*/

k=-1;/*将-1赋给k*/

do/*用循环将十进制的数转化成二进制的数*/

{

r=x%2;/*用除R取余倒计法计算二进制*/

b[++k]=r;/*将值赋给数组*/

x/=2;/*将原数除2*/

}while(x=1);

for(i=k;i=0;i--)        /*将上面倒计的数正回来*/

printf("%d",b[i]);/*输出结果*/

printf("\n");

}

课程设计:数制转换(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语言中的进制怎么转换啊

任意进制之间的进制转换。需要考虑高精度整形的设计,用数组模拟一个整形变量。一位一位的进行进制转换,算法思想和十进制转换到二进制相同,除以目标进制,余数为低位。这种进制转换实用性不强,一般出现在计算机程序竞赛当中。

8,10,16进制的转换。在C语言中有不少函数都能实现上面几种进制之间的进制转换。

推荐其中的sprintf/sscanf函数。

sprintf格式的规格如下所示。[]中的部分是可选的。

%[指定参数][标识符][宽度][.精度]指示符

若想输出'%'本身时, 请使用'%%'处理。

1. 处理字符方向。负号时表示从后向前处理。

2. 填空字元。 0 的话表示空格填 0;空格是内定值,表示空格就放着。

3. 字符总宽度。为最小宽度。

4. 精确度。指在小数点后的浮点数位数。

转换字符

%% 印出百分比符号,不转换。

%c 整数转成对应的 ASCII 字元。

%d 整数转成十进位。

%f 倍精确度数字转成浮点数。

%o 整数转成八进位。

%s 整数转成字符串。

%x 整数转成小写十六进位。

%X 整数转成大写十六进位。

例程(16进制和10进制之间的转换):

#include stdio.h  

#include limits.h  

int main()  

{  

char s[100] = {0};  

sprintf(s, "%x", INT_MAX);  

printf("%s\n", s); // 7fffffff  

char str[100] = "7fffffff";  

int i = 0;  

sscanf(str, "%x", i);  

printf("%d\n", i); // 2147483647  

return 0;   

}


网站标题:c语言函数数制转换 c语言用函数转换大小写
URL标题:http://cqcxhl.cn/article/doppcid.html

其他资讯

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