C语言16进制转10进制完整代码
时间: 2023-10-29 17:32:12 浏览: 35
#include<stdio.h>
#include<math.h>
#include<string.h>
int hexToDecimal(char hex[]);
int main(){
char hex[20];
printf("请输入一个16进制数:");
scanf("%s",hex);
printf("十进制数为:%d\n", hexToDecimal(hex));
return 0;
}
int hexToDecimal(char hex[]){
int len = strlen(hex);
int decimal = 0;
for(int i=0; i<len; i++){
int val = 0;
if(hex[i]>='0' && hex[i]<='9'){
val = hex[i] - '0';
}
else if(hex[i]>='a' && hex[i]<='f'){
val = hex[i] - 'a' + 10;
}
else if(hex[i]>='A' && hex[i]<='F'){
val = hex[i] - 'A' + 10;
}
decimal += val * pow(16,len-i-1);
}
return decimal;
}
相关问题
c语言16进制转10进制代码
#include <stdio.h>
int main()
{
int n;
printf("输入一个16进制数:");
scanf("%x", &n); // %x表示16进制输入
printf("%d\n", n); // %d表示10进制输出
return 0;
}
c语言16进制转换成10进制代码
以下是 C 语言的代码示例,将一个 16 进制的字符串转换为 10 进制的整数:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
char* hex_str = "1a";
int dec_num = strtol(hex_str, NULL, 16);
printf("%d\n", dec_num); // 输出 26
return 0;
}
```
其中,`strtol()` 函数的第二个参数为 `NULL`,表示不需要返回转换后的字符串。第三个参数为 16,表示输入字符串是 16 进制的。函数返回一个长整数,即转换后的 10 进制数。我们将其转换为整型并输出。