c语言16进制转10进制代码
时间: 2023-10-23 15:48:28 浏览: 72
#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进制完整代码
#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进制
在C语言中,可以使用`strtol`函数将16进制字符串转换为10进制整数。
例如,将字符串"1A"转换为10进制整数,可以使用以下代码:
```
#include <stdio.h>
#include <stdlib.h>
int main() {
char hex_str[] = "1A";
char *end_ptr;
long int decimal = strtol(hex_str, &end_ptr, 16);
printf("%ld\n", decimal);
return 0;
}
```
输出结果为:26。
其中,`strtol`函数的第一个参数是要转换的字符串,第二个参数是一个指向char类型指针的指针,用于返回转换后未被转换的字符串部分的指针,第三个参数是要转换的字符串的基数,这里使用16进制。函数返回转换后的长整型整数。
阅读全文