k进制数的转换,输入非负整数a将其转化为k进制数,2≤k≤32,k进制数的使用符号是0-9,A-V来表示 ,写出c语言代码
时间: 2023-12-11 12:02:40 浏览: 58
c语言实现进制转换
以下是C语言代码实现:
```c
#include <stdio.h>
#include <string.h>
void convert(int num, int base, char *str)
{
int i = 0;
while (num != 0) {
int rem = num % base;
if (rem < 10) {
str[i++] = rem + '0';
} else {
str[i++] = rem - 10 + 'A';
}
num /= base;
}
str[i] = '\0';
// Reverse the string
int len = strlen(str);
for (int j = 0; j < len / 2; j++) {
char temp = str[j];
str[j] = str[len - j - 1];
str[len - j - 1] = temp;
}
}
int main()
{
int num, base;
printf("Enter a non-negative integer: ");
scanf("%d", &num);
printf("Enter the base (between 2 and 32): ");
scanf("%d", &base);
if (base < 2 || base > 32) {
printf("Invalid base!\n");
return 1;
}
char str[100];
convert(num, base, str);
printf("%d in base-%d notation is %s\n", num, base, str);
return 0;
}
```
在上述代码中,我们定义了一个 `convert` 函数,它将十进制整数转换为 k 进制数,并将其存储在一个字符数组中。然后,我们在 `main` 函数中读取输入的整数和进制数,并使用 `convert` 函数将其转换为 k 进制数,最后输出结果。
阅读全文