C语言写一个函数,输入一个十六进制数,输出相应的十进制数。
时间: 2023-11-20 19:12:45 浏览: 211
可以使用C语言中的`sscanf()`函数将十六进制字符串转换成十进制整数,示例如下:
```c
#include <stdio.h>
int hexToDec(char* hexStr) {
int decNum;
sscanf(hexStr, "%x", &decNum);
return decNum;
}
int main() {
char hexStr[10];
printf("请输入一个十六进制数:");
scanf("%s", hexStr);
printf("该十六进制数对应的十进制数为:%d\n", hexToDec(hexStr));
return 0;
}
```
运行结果:
```
请输入一个十六进制数:1a
该十六进制数对应的十进制数为:26
```
相关问题
c语言写一个函数输入一个十六进制数输出相应的十进制数
要实现这个功能,我们可以写一个函数来完成。该函数的原型可以是:
```c
int hexToDec(char *hex);
```
其中,参数hex是一个指向字符串的指针,表示输入的十六进制数。
函数的具体实现如下:
```c
#include <stdio.h>
#include <string.h>
int hexToDec(char *hex)
{
int len = strlen(hex);
int base = 1; // 初始化基数为1
int dec = 0; // 初始化十进制数为0
for (int i = len - 1; i >= 0; i--)
{
if (hex[i] >= '0' && hex[i] <= '9') // 如果是0-9的数字字符
{
dec += (hex[i] - '0') * base;
}
else if (hex[i] >= 'A' && hex[i] <= 'F') // 如果是A-F的字符
{
dec += (hex[i] - 'A' + 10) * base;
}
base *= 16; // 更新基数
}
return dec;
}
```
接下来,我们可以调用这个函数来实现输入一个十六进制数,输出相应的十进制数的功能,如下所示:
```c
int main()
{
char hex[100];
printf("请输入一个十六进制数:");
scanf("%s", hex);
int dec = hexToDec(hex);
printf("相应的十进制数为:%d\n", dec);
return 0;
}
```
通过上述程序,我们就可以输入一个十六进制数,然后通过调用hexToDec函数来得到相应的十进制数,并输出出来。
使用C语言写一函数,输入一个十六进制数,输出相应的十进制数。 程序的运行示例如下: 输入十六进制数: 3a 十进制数58 继续吗? y 输入十六进制数: 2f 十进制数47 继续吗? n
可以使用`sscanf`函数将输入的十六进制数格式化为十进制数。具体实现如下:
```
#include <stdio.h>
int main() {
char hex[10];
int decimal;
do {
printf("输入十六进制数: ");
scanf("%s", hex);
sscanf(hex, "%x", &decimal);
printf("十进制数%d\n", decimal);
printf("继续吗? ");
} while (getchar() != 'n');
return 0;
}
```
上述程序中,我们使用了`do-while`循环来不断读取输入的十六进制数,并将其转化为十进制数。用户可以选择是否继续输入,当用户输入n时,程序退出循环。`sscanf`函数中的`%x`表示将输入的字符串按十六进制解析为整数。
阅读全文