用C语言写一个函数,输人一个十六进制数,输出相应的十进制数。
时间: 2023-11-23 12:08:23 浏览: 135
以下是用C语言写一个函数,输入一个十六进制数,输出相应的十进制数的代码:
```c
int Transpose(char str[]) {
int i = 0;
int n = 0;
while (str[i]) {
if (str[i] >= 'A' && str[i] <= 'Z')
n = n * 16 + str[i] - 'A' + 10;
if (str[i] >= 'a' && str[i] <= 'z')
n = n * 16 + str[i] - 'a' + 10;
if (str[i] >= '0' && str[i] <= '9')
n = n * 16 + str[i] - '0';
i++;
}
return n;
}
int main() {
char str[128];
printf("请输入一个十六进制数:");
gets(str);
printf("0x%s=%d", str, Transpose(str));
return 0;
}
```
相关问题
c语言写一个函数,输人一个十六进制数,输出相应的十进制数
好的,我可以帮你解决这个问题。以下是一个用 C 语言编写的将十六进制数转换为十进制数的函数:
```
#include <stdio.h>
int hexToDec(char hex[]) {
int i, digit, num = 0;
// 循环每个十六进制位并将其转换为十进制数
for (i = 0; hex[i] != '\0'; i++) {
// 如果字符是一个数字,则计算其数字值
if (hex[i] >= '0' && hex[i] <= '9') {
digit = hex[i] - '0';
}
// 如果字符是一个大写字母,则计算其数字值
else if (hex[i] >= 'A' && hex[i] <= 'F') {
digit = hex[i] - 'A' + 10;
}
// 如果字符是一个小写字母,则计算其数字值
else if (hex[i] >= 'a' && hex[i] <= 'f') {
digit = hex[i] - 'a' + 10;
}
// 如果字符不是一个数字或字母,则退出循环
else {
break;
}
// 将当前数字乘以 16 的幂,然后将其添加到 num 变量中
num = num * 16 + digit;
}
// 返回十进制数
return num;
}
int main() {
char hex[100];
int dec;
// 读取十六进制数
printf("Input a hexadecimal number: ");
scanf("%s", hex);
// 调用函数将十六进制数转换为十进制数
dec = hexToDec(hex);
// 输出十进制数
printf("Decimal number is %d", dec);
return 0;
}
```
你可以将一个十六进制数作为输入,然后这个函数将返回相应的十进制数。
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函数来得到相应的十进制数,并输出出来。
阅读全文