C语言16进制转10进制完整代码
时间: 2023-10-29 13:32:12 浏览: 118
#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语言中的strtol()函数将16进制字符串转换为10进制整数。
示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
char hex[] = "1A"; // 16进制字符串
long decimal = strtol(hex, NULL, 16); // 转换为10进制整数
printf("16进制数 %s 转换为10进制数为 %ld\n", hex, decimal);
return 0;
}
```
输出:
```
16进制数 1A 转换为10进制数为 26
```
阅读全文