永发信息网

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

答案:3  悬赏:80  手机版
解决时间 2021-03-24 19:07
c语言中16进制转换为十进制
最佳答案
一、问题描述
十进制数是指各位数字全部由小于10的数字(0..9)组成的数值,如123、45678等。十六进制数是指各位数字全部由小于16的数字(0..9,a..f)组成的数值,如ffff、1e5a等。将十进制数转换为十六进制数是将全部由小于10的数字组成的数值转换为全部由小于16的数字组成的数值,如十进制数100转换为二进制数为64。


二、算法分析
逐个取出16进制数值各数字组成的字符串中的字符,得到它的序号(0..15),累加序号乘以16的n次方的和,n按0、1、2的规律变化。最终的累加和即为转换后的十进制数。
for(i=len-1; i>=0; i--)
{
sum += t * getIndexOfSigns(*(source + i));
t *= 16;
}

三、参考程序
#include 
#include 


long hexToDec(char *source);


int getIndexOfSigns(char ch);

int main()
{
char *hex = "75BCD15";

printf("16进制数: %s
", hex);
printf("10进制数: %ld
", hexToDec(hex));

return 0;
}


long hexToDec(char *source)
{
long sum = 0;
long t = 1;
int i, len;

len = strlen(source);
for(i=len-1; i>=0; i--)
{
sum += t * getIndexOfSigns(*(source + i));
t *= 16;
}

return sum;
}


int getIndexOfSigns(char ch)
{
if(ch >= '0' && ch <= '9')
{
return ch - '0';
}
if(ch >= 'A' && ch <='F') 
{
return ch - 'A' + 10;
}
if(ch >= 'a' && ch <= 'f')
{
return ch - 'a' + 10;
}
return -1;
}

四、运行测试
16进制数:       75BCD15
10进制数:       123456789
全部回答
int PowerXY(int x, int y)
{
if(y == 0)
return 1 ;
else
return x * PowerXY(x, y -1 ) ;
}
int Convert16To10(int number)
{
int r = 0 ;
int i = 0 ;
int result = 0 ;
while(number)
{
r = number % 16 ;
result += r * PowerXY(16, i++) ;
number /= 16 ;
}
return result ;
}
#include
long fun(char*s);
#define N 50
void main()
{
long m;
char s[N];
printf("输入十六进制数: ");
scanf("%s",s);
m=fun(s);
printf("%ld",m);
}
long fun(char*s)
{
int i,t;
long sum=0;
for(i=0;s[i];i++)
{
if(s[i]<='9')t=s[i]-'0';
else t=s[i]-'a'+10;
sum=sum*16+t;
}
return sum;
}
我运行过了,能够得出正确答案
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
韩国大选,安哲秀会当上总统么
CBB初瑞雪的zuzu面膜真的好用吗?
小明的身高是120cm这题对吗还是错的
阿昌族在哪个省哪区
电动车48v35a电池该配什么型号充电器
力的平行分解原理是什么?在线求助,请力学大
wps产生随机数1.15-1.2之间 怎么做
美国为什么喜欢牺牲很多人去救一个人
中国有多少同志
环迅支付好用吗?
黑洁明红眼系列小说有哪几本
口袋助理和励销CRM哪个好啊?急啊!
amd速龙64x2 4400+ 2.3ghz 和6000+ 3.0ghz性
铜的磁导率
cad墙体画完怎么合并拐角?
推荐资讯
在最动漫资讯台上看到的 最新一期第一个观众
Not only hard but also kind.A. does he
技嘉790显卡是什么档次
ファミコンにかけては、子どもと言えども、バ
什么是五上三下
长沙市丁点网络科技有限公司是骗子公司?
翡翠虾仁的食用须知
乡村爱情8中永强第几集出车祸?
请问所谓“天华文化”是何东西?
想购买大量的当地手机号码资源,哪里有啊?比
联想小新V4000和Thinkpad T450相比,感觉Thin
烧香看香头是迷信说法吗
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?