十六进制转换为十进制c++代码
时间: 2023-10-10 12:11:55 浏览: 48
以下是将十六进制数转换为十进制数的C代码示例:
```c
#include <stdio.h>
#include <math.h>
int main() {
char hex[17];
long long decimal = 0, base = 1;
int i = 0, value, length;
printf("Enter a hexadecimal number: ");
scanf("%s", hex);
// Determine the length of the hexadecimal number
while(hex[i] != '\0') {
length++;
i++;
}
// Convert hexadecimal to decimal
for(i = length - 1; i >= 0; i--) {
switch(hex[i]) {
case '0':
value = 0;
break;
case '1':
value = 1;
break;
case '2':
value = 2;
break;
case '3':
value = 3;
break;
case '4':
value = 4;
break;
case '5':
value = 5;
break;
case '6':
value = 6;
break;
case '7':
value = 7;
break;
case '8':
value = 8;
break;
case '9':
value = 9;
break;
case 'a':
case 'A':
value = 10;
break;
case 'b':
case 'B':
value = 11;
break;
case 'c':
case 'C':
value = 12;
break;
case 'd':
case 'D':
value = 13;
break;
case 'e':
case 'E':
value = 14;
break;
case 'f':
case 'F':
value = 15;
break;
default:
printf("Invalid hexadecimal input.");
return 0; // Exit program if invalid input is entered
}
decimal += value * base;
base *= 16;
}
printf("The hexadecimal %s is equivalent to the decimal number %lld.", hex, decimal);
return 0;
}
```
该代码将要求用户输入一个十六进制数,然后将其转换为十进制数并输出结果。请注意,此代码假定用户输入的十六进制数是有效的。如果输入无效,程序将中止并显示错误消息。