c语言中十六进制怎么转换成十进制

 我来答
碧海风

2017-07-28 · 碧海风的秘密小据点!
碧海风
采纳数:909 获赞数:10281

向TA提问 私信TA
展开全部
#include <stdio.h>
#include <math.h>
#include <string.h>

/* 任意进制数转十进制数 */
/* char *value : 其他进制数,以字符串形式存储 */
/* int *result : 转换后的十进制数 */
/* int radix : 待转换的进制 */
/* R进制数共n位,第n位表示为Xn。转换后的10进制数表示为Y */
/* Y = Xn*R^0 + Xn-1*R^1 + Xn-2*R^2 + …… + X1*R^n-1 */
void others2Decimal (char *value, int *result, int radix) { 
int digit,i,j;

*result = 0;
for (i=strlen(value)-1,j=0; i>=0; i--,j++) {
if (value[i]>='0' && value[i]<='9')
digit = value[i]-'0';
if (value[i]>='a' && value[i]<='z') /* 十以上进制处理,小写字母 */
digit = value[i]-'a'+10;
if (value[i]>='A' && value[i]<='Z') /* 十以上进制处理,大写字母 */
digit = value[i]-'A'+10;
*result += digit*pow(radix,j);
}
}

int main (void) {
char *value="ff";
int radix=16,result;

    printf ("16进制数:%s\n10进制转换结果:",value); 
others2Decimal (value,&result,radix);
printf ("%d\n",result);
putchar ('\n');

getch (); /*屏幕暂留*/
return 0;
}

运行结果

编程大王
2017-07-28 · TA获得超过922个赞
知道小有建树答主
回答量:979
采纳率:51%
帮助的人:140万
展开全部
网上有一大波的教程
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式