c语言函数做加法,我用C语言定义了一个函数,利用乘权相加法用来将16进制数转化成10进制数,高手看下哪里有问题...

本文介绍了一个使用C语言编写的函数,该函数通过乘权相加法将输入的十六进制字符串转换为十进制整数。函数首先计算输入字符串的长度,然后从高位到低位遍历每个字符,根据字符是否在0-9或a-f/A-F范围内进行相应的十进制转换并累加。对于大写字母,也进行了正确的处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我用C语言定义了一个函数,利用乘权相加法用来将16进制数转化成10进制数,高手看下哪里有问题0

int hexadecimal_metrication(char hexadecimal_number[])//定义一个函数,利用乘权相加法将十六进制的数转化成十进制数

{

int len,i,metrication_number;

len=strlen(hexadecimal_number);

metrication_number=0;

for(i=len;i>0;i--)

{

if((hexadecimal_number[i]>='0')&&(hexadecimal_number[i]<='9'))//如果该字符为0到9中的一个,那么将其转化成数字,利用公式相加

metrication_number=metrication_number+((int) hexadecimal_number[i])*(int)pow(16,i-1);

else if(hexadecimal_number[i]>='a'&&hexadecimal_number[i]<='f')//如果是a到f中的一个,那么转化成对应的十进制数字,利用公式相加

{

switch(hexadecimal_number[i])

{

case 'a':

metrication_number=metrication_number+10*(int)pow(16,i-1);

break;

case 'b':

metrication_number=metrication_number+11*(int)pow(16,i-1);

break;

case 'c':

metrication_number=metrication_number+12*(int)pow(16,i-1);

break;

case 'd':

metrication_number=metrication_number+13*(int)pow(16,i-1);

break;

case 'e':

metrication_number=metrication_number+14*(int)pow(16,i-1);

break;

case 'f':

metrication_number=metrication_number+14*(int)pow(16,i-1);

break;

}

}

else//如果是A到F中的一个,那么转化成对应的十进制数字,利用公式相加

{

switch(hexadecimal_number[i])

{

case 'A':

metrication_number=metrication_number+10*(int)pow(16,i-1);

break;

case 'B':

metrication_number=metrication_number+11*(int)pow(16,i-1);

break;

case 'C':

metrication_number=metrication_number+12*(int)pow(16,i-1);

break;

case 'D':

metrication_number=metrication_number+13*(int)pow(16,i-1);

break;

case 'E':

metrication_number=metrication_number+14*(int)pow(16,i-1);

break;

case 'F':

metrication_number=metrication_number+14*(int)pow(16,i-1);

break;

}

}

}

return metrication_number;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值