c语言代码任意进制转换
时间: 2023-12-03 15:38:10 浏览: 81
C语言任意进制转代码
C语言中可以通过以下代码实现任意进制转换:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char* convert(int num, int base) {
char* digits = "0123456789ABCDEF";
char buffer[100];
int i = 0;
int j = 0;
if (num == 0) {
buffer[i++] = '0';
buffer[i] = '\0'; return strdup(buffer);
}
while (num > 0) {
buffer[i++] = digits[num % base];
num /= base;
}
buffer[i] = '\0';
for (j = 0; j < i / 2; j++) {
char temp = buffer[j];
buffer[j] = buffer[i - j - 1];
buffer[i - j - 1] = temp;
}
return strdup(buffer);
}
int main() {
int num = 123;
int base = 16;
char* result = convert(num, base);
printf("%d in base %d is %s\n", num, base, result);
free(result);
return 0;
}
```
该代码中的convert函数可以将一个十进制数转换为任意进制数,其中num为要转换的数,base为要转换的进制数。在main函数中,我们可以通过调用convert函数来实现任意进制转换。
阅读全文