c语言转换成10进制函数,10进制转化为16进制

如何用C语言将一个16进制数转换成10进制数,要求用函数。

我自己编写的一个函数。

成都创新互联是一家集网站建设,门源企业网站建设,门源品牌网站建设,网站定制,门源网站建设报价,网络营销,网络优化,门源网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

楼上的根本没达到目的。赋值语句实现纯粹是投机取巧。考试肯定为0分。

下面是程序源代码

#includestdio.h

void

shuchu(int

c)

//这个函数不用编写,可以直接在zhs函数里面用语句写的//

{

c=c%16;

if(c=0c=9)

{c=c+48;

putchar(c);

}

else

{

c=c+87;

putchar(c);

}

}

void

zhs(int

c)

{

if(c=15)

shuchu(c);

else

{

zhs(c/16);

shuchu(c);

}

}

void

main()

{

int

n;

printf("please

enter

a

number:\n");

scanf("%d",n);

printf("zhuan

huan

hou

de

16jinzhi

shushi

:\n");

zhs(n);

printf("\n");

}

不好意思弄错了这是一个十进制转换到16进制的问题。我重新帮你写一个。

C语言如何将一个数字组成的字符串转变成十进制数

办法很多,提供三种供参考。

一、直接使用库函数atoi将数字字符串转换成十进制整数。代码如下:

#include "stdio.h"

#include "stdlib.h"//调用库函数atoi要包含这个文件

int main(int argc,char *argv[]){

char a[]="478167831";

printf("%d\n",atoi(a));//直接调用atoi将a转换为十进制整数

return 0;

}

二、用库函数sscanf直接将数组中的数字字符串读入十进制整型变量。代码如下:

#include "stdio.h"

int main(int argc,char *argv[]){

char a[]="478167831";

int x;

sscanf(a,"%d",x);//调用sscanf,读入时自动转换为int型并由%d控制以十进制赋给变量x

printf("%d\n",x);//输出

return 0;

}

三、自行编写转换代码:

#include "stdio.h"

int main(int argc,char *argv[]){

char a[]="478167831";

int x,i;

for(x=i=0;a[i];(x*=10)+=a[i++]-'0');//字符与数字的关系是"字符值-'0'==同名数字"

printf("%d\n",x);//输出

return 0;

}

上述三代码的输出结果如下图:

c语言16进制转换为10进制数的函数是什么?

方案一:

#includestdio.h#includemath.h#includestring.hint main(){char s[50];scanf("%s",s);int t=strlen(s);long sum=0;for(int i=0;it;i++){if(s[i]='A' s[i]='Z')s[i]=int(s[i]-'A')+10+'0';sum+=((s[i]-'0')*(pow(16,t-1-i)));}printf("%ld\n",sum);}

方案二:

#includestdio.hint main(){char s[50];scanf("%s",s);int t;long sum=0;for(int i=0;s[i];i++){if(s[i]='9')t=s[i]-'0';elset=s[i]-'A'+10;sum=sum*16+t;}printf("%ld\n",sum);return 0;}

c语言中16进制转换为十进制

最简单的使用scanf()函数和printf()函数进行格式转换,以16进制格式输入,再以10进制格式输出。

程序代码如下:

#includestdio.h

int main()

{

int a=0;

int i=0;

scanf("%x",a);

printf("%d",a);

return 0;

}

运行结果:

扩展资料:

scanf函数与printf函数的用法很像,都是以格式化的形式进行操作,例如上述程序中scanf("%x", a);就是将输入数据以十六进制格式存储到变量a中。

"%x"是将字符串A23CD以十六进制形式输入a中,如果将"%x"换成为"%d"的话,就是将字符串A23CD以十进制形式输入a中,这显然是错误的,因为将A23CD转换为十进制的时候,无法解析A,CD等字符,所以得出的结果就是错误的。

用C语言编写二进制转换十进制的程序。

1、为了完成进制的转换,在主函数中声明了个函数Sum,主要用于将二进制的每一位转换为十进制后的数相加,返回值就是相加后的和。另外定义了一个数组array[8],用于存放输入的八位二进制数。

2、然后使用了一个for循环语句,用于输入八位二进制数。在scanf函数里,在%d之间加了一个1,即%1d,这样是好连续的输入八个数,如果没有中间的1,则编译器会认为你只输入了一个数,即那个八位数。然后使用printf函数输出,并且调用Sum函数,数组名作为实参。

3、在Sum函数中,又声明了一个power函数,power函数的作用是求2的n次方,其实这里可以调用库函数pow,但是老师要求不调用库函数,因此就自己写了一个求2的n次方的函数,在这里n为指数,term为每一位数转换为十进制后的的数,如1*(2*2),sum为总和。

4、接着,使用了一个for循环语句,i用于控制循环的次数,n从最高的指数7开始每次循环减一,如果指数大于或等于零的,就进行循环,因为二进制的最后一位转换为十进制数时指数就是零,此后循环就结束。调用power函数时,将n作为实参,最后将和返回,即将sum作为返回值返回给Sum函数。

5、在power函数中,如果b等于零,即指数为零,则返回1,否则就进入一个循环,j用于控制循环次数,有疑问的可以用笔算算乘2的个数对不对,最后将i返回。

6、最后看一下运行的结果。

怎样用C语言将二进制数转换成十进制

将二进制转成十进制,按权值展开求和即可。

可以通过以下代码解决:

#include stdio.h

#include stdlib.h

int main()

{

char a[17];

gets(a);

int len,i,sum=0,m,j;

len=strlen(a);

if(len=16)

{

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

{

m=1;

if(a[i]=='1')

{

for(j=1;j=len-i-1;j++)

m*=2;

sum+=m;

}

}

printf("%d",sum);

}

return 0;

}

扩展资料:

我们常用的进制包括:二进制、八进制、十进制与十六进制,它们之间区别在于数运算时是逢几进一位。比如二进制是逢2进一位,十进制也就是我们常用的0-9是逢10进一位。

十进制转二进制:十进制数除2取余法,即十进制数除2,余数为权位上的数,得到的商值继续除2,依此步骤继续向下运算直到商为0为止。

八进制转二进制:八进制数通过除2取余法,得到二进制数,对每个八进制为3个二进制,不足时在最左边补零。

十六进制转二进制:十六进制数通过除2取余法,得到二进制数,对每个十六进制为4个二进制,不足时在最左边补零。

负数的进制转换稍微有些不同。

先把负数写为其补码形式(在此不议),然后再根据二进制转换其它进制的方法进行。

例:要求把-9转换为八进制形式。则有:

-9的补码为1111 1111 1111 0111。从后往前三位一划,不足三位的加0

111----7

110----6

111----7

111----7

111----7

001----1

然后我们将结果按从下往上的顺序书写就是:177767,那么177767就是十进制数-9的八进制形式。

其实转化成任意进制都是一样的。

参考资料:

二进制——百度百科

十进制——百度百科


网站名称:c语言转换成10进制函数,10进制转化为16进制
文章路径:http://hbruida.cn/article/hdgdso.html