c语言代码实现进制的转换
时间: 2024-12-04 13:24:26 浏览: 5
在C语言中,你可以使用库函数或者自定义函数来实现数字之间的进制转换。以下是两个常见的例子:
1. **整型数转换** (十进制转其他进制)
```c
#include <stdio.h>
#include <stdlib.h> // 对于atoi函数
void decimalToOtherBase(int num, int base) {
char result[50]; // 预留足够大的空间存储结果
sprintf(result, "%d", num); // 将数字转换为字符串
long long converted = strtol(result, NULL, base); // 使用strtol函数按指定基数转换
printf("%lld\n", converted);
}
int main() {
int decimal_num = 42;
int base_to_convert = 16; // 转换为十六进制
decimalToOtherBase(decimal_num, base_to_convert);
return 0;
}
```
2. **字符数组转换** (十六进制转十进制)
```c
#include <stdio.h>
#define MAX_BUFFER_SIZE 100
int hexToInt(char hex[]) {
int decimal = 0;
for (int i = 0; hex[i] != '\0'; ++i) {
if ('0' <= hex[i] && hex[i] <= '9') {
decimal = decimal * 16 + (hex[i] - '0');
} else if ('A' <= hex[i] && hex[i] <= 'F') {
decimal = decimal * 16 + (hex[i] - 'A' + 10);
} else if ('a' <= hex[i] && hex[i] <= 'f') {
decimal = decimal * 16 + (hex[i] - 'a' + 10);
} else {
printf("Invalid character in the hexadecimal number.\n");
return -1;
}
}
return decimal;
}
int main() {
char hex_num[] = "2A";
int decimal_num = hexToInt(hex_num);
printf("%d\n", decimal_num);
return 0;
}
```
阅读全文