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.
int parseHex(const char * const hexString)
{
if(hexString == NULL){
cout << "error !!!";
return 0;
}
int result = 0;
int len = strlen(hexString);
for(int i = 0; i < len; i++){
if(hexString[i] >= 'A' && hexString[i] <= 'F'){
result = result * 16 + (hexString[i] - 'A' + 10);
}else{
result = result * 16 + (hexString[i] - '0') ;
}
}
return result;
}
如果要将10进制的数字以16进制的数形式输出来呢?
C语言中有一种输出格式可以很快的实现这一想法。
如
int a;
scanf("%d", &a);
printf("%d\n", a);
printf("%x\n", a);
这样就可以将10进制的数字以16进制的数字输出了。
如输入10进制数 2333333
输出16进制数 239a95