编写函数voidconvers(intdevintnv)完成+进制数dev到其它进制nv(二进制、八进制、十六进制)的转换。然后在main函数中调用测试该函数。
以下是实现该函数的代码:
#include <stdio.h>
void convert(int dev, int nv) {
int remainder, quotient, i = 1, j, temp;
char hexadecimalNumber[100];
quotient = dev;
while (quotient != 0) {
remainder = quotient % nv;
if (remainder < 10)
hexadecimalNumber[i++] = remainder + 48;
else
hexadecimalNumber[i++] = remainder + 55;
quotient = quotient / nv;
}
printf("Equivalent %d value in %d system is: ", dev, nv);
for (j = i - 1; j > 0; j--)
printf("%c", hexadecimalNumber[j]);
}
int main() {
int dev, nv;
printf("Enter the decimal number: ");
scanf("%d", &dev);
printf("Enter the new base: ");
scanf("%d", &nv);
convert(dev, nv);
return 0;
}
在该代码中,我们使用了一个 while 循环来计算给定十进制数的新进制数。在每次迭代中,我们计算余数并将其转换为字符形式。如果余数小于 10,则我们将其转换为 ASCII 码并将其添加到字符数组中。否则,我们将其转换为十六进制字符并将其添加到字符数组中。最后,我们反向遍历字符数组并打印出新进制数。
在 main 函数中,我们首先要求用户输入十进制数和新进制数,然后调用 convert 函数来计算新进制数。