用c语言编写函数,该函数的功能是将任意的十六进制数转换为相应的十进制数,并返回主调函数。要求在主函数中输入十六进制数,输出转换后十进制数
时间: 2023-08-31 11:40:15 浏览: 271
c++作业题---编写一个函数,输入一个十六进制数,便输出相应的十进制数
5星 · 资源好评率100%
### 回答1:
以下是将任意的十六进制数转换为相应的十进制数的C语言函数实现:
```c
#include <stdio.h>
#include <string.h>
int hexToDec(char hex[]) {
int len = strlen(hex);
int base = 1;
int dec = 0;
for (int i = len - 1; i >= 0; i--) {
if (hex[i] >= '0' && hex[i] <= '9') {
dec += (hex[i] - 48) * base;
base *= 16;
} else if (hex[i] >= 'a' && hex[i] <= 'f') {
dec += (hex[i] - 87) * base;
base *= 16;
} else if (hex[i] >= 'A' && hex[i] <= 'F') {
dec += (hex[i] - 55) * base;
base *= 16;
}
}
return dec;
}
int main() {
char hex[20];
int dec;
printf("请输入一个十六进制数:");
scanf("%s", hex);
dec = hexToDec(hex);
printf("转换后的十进制数为:%d\n", dec);
return 0;
}
```
在主函数中,我们先输入一个十六进制数,然后调用`hexToDec()`函数将其转换为十进制数,并将转换后的结果输出。
### 回答2:
下面是一个用C语言编写的函数,实现将任意十六进制数转换为相应的十进制数,并返回主调函数。
```c
#include <stdio.h>
#include <string.h>
int hexToDec(char hex[])
{
int i, decimal = 0, base = 1, len;
len = strlen(hex);
for(i = len - 1; i >= 0; i--)
{
if(hex[i] >= '0' && hex[i] <= '9')
{
decimal += (hex[i] - 48) * base;
base *= 16;
}
else if(hex[i] >= 'A' && hex[i] <= 'F')
{
decimal += (hex[i] - 55) * base;
base *= 16;
}
else if(hex[i] >= 'a' && hex[i] <= 'f')
{
decimal += (hex[i] - 87) * base;
base *= 16;
}
}
return decimal;
}
int main()
{
char hex[100];
int decimal;
printf("请输入一个十六进制数:");
scanf("%s", hex);
decimal = hexToDec(hex);
printf("转换后的十进制数为:%d\n", decimal);
return 0;
}
```
在主函数中,先声明一个字符数组`hex`用来存储输入的十六进制数,然后通过`scanf`函数获取用户输入。将输入的十六进制数作为参数调用`hexToDec`函数进行转换,得到转换后的十进制数,最后通过`printf`函数输出结果。
### 回答3:
#include <stdio.h>
int hexToDec(char hex[]) {
int i, len, base = 1, dec = 0;
len = strlen(hex);
for(i=len-1; i>=0; i--) {
if(hex[i] >= '0' && hex[i] <= '9') {
dec += (hex[i] - 48)*base;
base *= 16;
}
else if(hex[i] >= 'A' && hex[i] <= 'F') {
dec += (hex[i] - 55)*base;
base *= 16;
}
else if(hex[i] >= 'a' && hex[i] <= 'f') {
dec += (hex[i] - 87)*base;
base *= 16;
}
}
return dec;
}
int main() {
char hex[100];
int decimal;
printf("请输入一个十六进制数:");
scanf("%s", hex);
decimal = hexToDec(hex);
printf("转换后的十进制数为:%d\n", decimal);
return 0;
}
这段代码实现了一个将十六进制数转换为十进制数的函数,通过主函数从标准输入中获取一个十六进制数,并调用该函数将其转换为十进制数后打印出来。
阅读全文