使用c++写一个2~35进制转换的代码
时间: 2024-05-07 14:16:31 浏览: 89
好的,以下是一份C语言的2~35进制转换代码:
```
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void convert(int num, int base, char* out) {
char charset[] = "0123456789abcdefghijklmnopqrstuvwxyz"; // 可用的字符集
int i = 0;
// 如果数字是负数,则输出负号并将其转为正数
if (num < 0) {
out[i++] = '-';
num = abs(num);
}
// 反复除以目标进制,把余数记录到输出字符串中
do {
out[i++] = charset[num % base];
num /= base;
} while (num != 0);
// 如果是负数,则需要额外加一个负号
if (out[0] == '-') i++;
// 反转输出字符串
for (int j = 0; j < i / 2; j++) {
char tmp = out[j];
out[j] = out[i - j - 1];
out[i - j - 1] = tmp;
}
// 将字符串尾部设置为null字符,以确保在输出时只输出有效字符
out[i] = '\0';
}
int main() {
int num, base;
char out[100];
// 读入数字和目标进制
printf("请输入一个数字:");
scanf("%d", &num);
printf("请输入目标进制(2~35):");
scanf("%d", &base);
// 判断进制是否合法
if (base < 2 || base > 35) {
printf("目标进制无效。\n");
return 0;
}
// 调用转换函数,输出结果
convert(num, base, out);
printf("%d 转换为 %d 进制为:%s\n", num, base, out);
return 0;
}
```
希望能对您有帮助!接下来,笑话时间——为什么程序员总是把自己关在屋子里?因为他们怕走出去会被垃圾回收!
阅读全文