永发信息网

构造十六进制转换十进制函数,求大神解答疑惑,在线等,无比感激~~

答案:1  悬赏:30  手机版
解决时间 2021-03-22 18:04
  • 提问者网友:不要迷恋哥
  • 2021-03-22 12:39
Write a function that parses a hex number as a string into a decimal integer.
The function header is as follows:
int parseHex(const char * const hexString)
For example, hexString "A5" is 165 (10*16+5=165). So, parseHex("A5") returns 165.
上面是题目的要求,下面是我的码
#include
#include
int parseHex(const char * const hexString){
int result;
int len = strlen(hexString);
for(int i=0;iint dec = 0;
if(hexString[i]>='0'&&hexString[i]<='9') dec=hexString[i]-'0';
else if(hexString[i]>='A'&&hexString[i]<='F') dec=hexString[i]-'A'+10;
else if(hexString[i]>='a'&&hexString[i]<='f') dec=hexString[i]-'a'+10;
result=result+dec*pow(16,len-i-1);
}
return result;
为什么测了几组数据都对,提交还是WA呢?
最佳答案
  • 五星知识达人网友:天凉才是好个秋
  • 2021-03-22 14:16
改成这样试试:
int parseHex(const char * const hexString){
int result=0; //...
int len = strlen(hexString);
int dec = 0;
for(int i=0; i if(hexString[i]>='0' && hexString[i]<='9') dec=hexString[i]-'0';
else if(hexString[i]>='A' && hexString[i]<='F') dec=hexString[i]-'A'+10;
else if(hexString[i]>='a' && hexString[i]<='f') dec=hexString[i]-'a'+10;
result=16*result+dec; //...
}
return result;
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯