c语言进制转换源代码
时间: 2024-10-22 09:09:07 浏览: 24
jinzhizhuanhuan.rar_十六进制_进制转换_进制转换代码
在C语言中,你可以通过循环和基本算术运算来实现简单的进制转换。这里是一个简单的例子,展示如何将一个十进制数转换为任意进制的字符串表示:
```c
#include <stdio.h>
#include <string.h>
// 定义转换函数
char* convertToBase(int number, int base) {
char result[64] = {0};
int i = 0;
while (number > 0) {
// 计算余数,并添加相应的字符
result[i++] = '0' + (number % base);
number /= base;
}
// 添加前导零
if (result[0] == '\0') {
result[i++] = '0';
}
// 反转结果字符串
reverse(result, i);
return result;
}
// 反转字符串函数
void reverse(char *str, int len) {
for (int i = 0, j = len - 1; i < j; ++i, --j) {
char temp = str[i];
str[i] = str[j];
str[j] = temp;
}
}
int main() {
int decimal = 123;
int base = 8; // 要转换为八进制
char *converted = convertToBase(decimal, base);
printf("Decimal: %d\n", decimal);
printf("In base %d: %s\n", base, converted);
free(converted); // 不要忘记释放内存
return 0;
}
```
在这个示例中,`convertToBase`函数负责实际的转换,而`reverse`函数用于反转得到的字符串以便显示正确的顺序。注意这个代码并没有处理浮点数的转换。
阅读全文