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

如题所述

1、可以根据16进制转10进制的算法(即各位位码值乘以位权之和)来实现该功能。
2、具体实现方法可以参考如下程序:

#include <stdio.h>
void main()
{
     int he;    
     int re=0;   // 保存转换为10进制的结果
     int k=16;   // 16进制
     int n=1;    // 位权
     scanf("%d", &he);  // 接收用户输入的16进制数,不含0x前缀
     while(he != 0)  
     {
         re += (he%10)*n;  // 取出各位位码值,并乘以对应的位权值
         he /= 10;   // 去掉16进制数的最低位,次低位变为最低位
         n *= k;     // 位权乘以16
     }
     printf("%d",re); // 输出转换后的结果
}

温馨提示:内容为网友见解,仅供参考
第1个回答  2018-05-23

方案一:

#include<stdio.h>#include<math.h>#include<string.h>int main(){char s[50];scanf("%s",s);int t=strlen(s);long sum=0;for(int i=0;i<t;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);}

方案二:

#include<stdio.h>int 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;}

第2个回答  2018-03-07

c语言16进制转换为10进制数的函数可以根据16进制转10进制的算法(即各位位码值乘以位权之和)来实现该功能。

具体实现方法可以参考如下程序:

#include <stdio.h>
void main()
{
int he;
int re=0;   // 保存转换为10进制的结果
int k=16;   // 16进制
int n=1;    // 位权
scanf("%d", &he);  // 接收用户输入的16进制数,不含0x前缀
while(he != 0)
{
re += (he%10)*n;  // 取出各位位码值,并乘以对应的位权值
he /= 10;   // 去掉16进制数的最低位,次低位变为最低位
n *= k;     // 位权乘以16
}
printf("%d",re); // 输出转换后的结果
}

c语言16进制转换为10进制数的函数是什么?
1、可以根据16进制转10进制的算法(即各位位码值乘以位权之和)来实现该功能。2、具体实现方法可以参考如下程序:include <stdio.h>void main(){ int he; int re=0; \/\/ 保存转换为10进制的结果 int k=16; \/\/ 16进制 int n=1; \/\/ 位权 scanf("%d", &he); ...

c语言16进制转换为10进制数的函数是什么?
方案一:include<stdio.h>#include<math.h>#include<string.h>intmain(){chars[50];scanf("%s",s);intt=strlen(s);longsum=0;for(inti=0;i<t;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...

c语言中16进制转换为十进制
最简单的使用scanf()函数和printf()函数进行格式转换,以16进制格式输入,再以10进制格式输出。程序代码如下:include<stdio.h> int main(){ int a=0;int i=0;scanf("%x",&a);printf("%d",a);return 0;} 运行结果:

c语言16进制与10进制的转换
这个函数的int HtoD(char *a);就是将16进制的数用字符数组保存,把数组首地址作为参数传递给函数,函数返回转换后的10进制整型数值。详细说明,我写在备注里了,你看以参考。include <stdio.h>#include <string.h>int HtoD(char *a)\/\/将16进制的数字用字符串保存,并将字符串首地址作为参数传递...

C语言写一个函数,16进制转十进制
C语言16进制转十进制具体函数如下:include "stdio.h"int main(){ int num=0;int a[100];int i=0;int m=0;int yushu;char hex[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};printf("请输入一个十进制整数:");scanf("%d",&...

c语言中16进制转换成10进制数,求用可调用的函数,返回10进制数
如果是读入一个16进制的数,按照scanf(“%x”,&n)输出直接按照printf(“%d”,n)就可以了 如果是程序内部的话,都是按照2进制存储,正常运算就可以,不许要转换。

C语言 写一个函数 输入一个十六进制数 输出相应的十进制
\/ 函数:convert 功能:十六进制转十进制 \/ void conver(char arr[]){ int i,j=0,k=0,sum=0,n=strlen(arr);int num[100];for(i=0;i<n;i++){ switch(arr){ case'A':num[j++]=10;break;case'B':num[j++]=11;break;case'C':num[j++]=12;break;case'D':num[j++]=13;...

c语言中16进制转换成10进制数,求用可调用的函数,返回10进制数
如果是读入一个16进制的数,按照scanf(“%x”,&n)输出直接按照printf(“%d”,n)就可以了 如果是程序内部的话,都是按照2进制存储,正常运算就可以,不许要转换。

如何把16进制数转化为10进制,c语言编写
16进制数转10进制数原理:某16进制数共n位,第n位表示为Xn。转换后的10进制数表示为Y。Y = Xn×16^0 + Xn-1×16^1 + Xn-2×16^2 + …… + X1×16^n-1。include <stdio.h>#include <math.h>#include <string.h>\/* 任意进制数转十进制数 *\/\/* char *value : 其他进制数 *\/...

用C语言编写一个函数实现十六进制数至十进制数的转换.在主函数中输入十...
N);} printf("%d",num%N);} void main(){ int num;printf("输入一个十六进制的数\\n");scanf("%x",&num);printf("直接用%%d输出:%d\\n",num);printf("用函数输出:");HEX_DEC(num,10);\/\/转换成几进制就把第二个参数换成几 printf("\\n");system("pause");} 运行结果:...

相似回答