用C语言写一个函数,可以将16进制数int类型转换为10进制数
时间: 2024-05-14 19:11:51 浏览: 9
好的,对于您的问题,我可以给出下面的函数代码建议:
```c
int hex_to_dec(int num) {
int dec = 0, base = 1, rem;
while(num > 0) {
rem = num % 10;
dec += rem * base;
base *= 16;
num /= 10;
}
return dec;
}
```
这个函数会将传入的16进制整数转换为10进制整数,并将转换结果作为返回值返回。
希望这个函数能帮到您,有其他问题也可以随时问我哦!
相关问题
用C语言写一个函数,可以将16进制数转换为10进制数
好的,这是一个可以将16进制数转换为10进制数的C语言函数:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int hexToDec(char* hex) {
int len = strlen(hex);
int dec = 0;
for (int i = 0; i < len; i++) {
int digit = hex[i];
if (digit >= '0' && digit <= '9') {
digit -= '0';
} else if (digit >= 'a' && digit <= 'f') {
digit -= 'a' - 10;
} else if (digit >= 'A' && digit <= 'F') {
digit -= 'A' - 10;
} else {
return -1; // 非法输入
}
dec = dec * 16 + digit;
}
return dec;
}
int main() {
char* hex = "1A";
int dec = hexToDec(hex);
printf("%s in hex is %d in decimal.\n", hex, dec);
return 0;
}
```
在这个例子中,我们将16进制数字符串作为函数的参数,然后使用循环和逻辑来将其转换为10进制数。该函数将16进制数转换为整数并返回结果。在主函数中,我们演示如何使用该函数来将“1A”转换为26的十进制数。
请你用C语言写一个16进制数转换10进制的函数
以下是一个将16进制数转换为10进制数的C语言函数:
```c
#include <stdio.h>
#include <string.h>
#include <math.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 = base * 16;
} else if (hex[i] >= 'A' && hex[i] <= 'F') {
dec += (hex[i] - 55) * base;
base = base * 16;
}
}
return dec;
}
int main() {
char hex[] = "1F";
int dec = hexToDec(hex);
printf("%s in hex = %d in dec\n", hex, dec);
return 0;
}
```
该函数将接收一个16进制数作为输入,然后将其转换为10进制数并返回。函数使用一个循环来遍历16进制数中的每个数字,并根据数字的类型将其转换为10进制数。在函数中调用了C语言的字符串函数,因此需要包含`<string.h>`头文件。