C语言-进制转换

此生再无相见时 提交于 2020-03-01 14:42:22

//将一个正整数转换成其他基数的函数
#include <stdio.h>
int convertedNumber [64];
long int numberToConvert;
int base;
int digit = 0;

void getNumberAndBase (void)
{
printf ("请输入你需要转换的数字:\n");
scanf ("%li", &numberToConvert);

printf ("你想转换成几进制? ");
scanf ("%i", &base);
if ( base < 2 || base > 16) {
printf ("!!输入错误,必须是2--16之间的数字!!\n");
base = 10;
}
}
void convertNumber (void)
{
do {
convertedNumber[digit] = numberToConvert % base;
++digit;
numberToConvert /= base;
}
while (numberToConvert != 0);
}
void displayConvertedNumber (void)
{
const char baseDigits [16] =
{'0', '1', '2', '3', '4', '5', '6', '7',
'8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};
int nextDigit;

printf ("转换结果是: ");

for (--digit; digit >= 0; --digit){
nextDigit = convertedNumber[digit];
printf ("%c", baseDigits[nextDigit]);

}
printf ("\n");
}

int main (void)
{
void getNumberAndBase (void), displayConvertedNumber (void), convertNumber (void);

getNumberAndBase ();
convertNumber ();
displayConvertedNumber ();
system ("pause");
}

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!