我创建了一个程序,可以将任何正的十进制数(以10为基数)转换为任何基数,并且效果很好。如何实现以解决负小数?
int main() {
int num, base, i, r, digit, p, count = 0;
char a[100];
printf("Enter a decimal number: \n");
scanf("%d", &num);
printf("Enter the base to convert to: \n");
scanf("%d", &base);
p=num;
do {
r = p % base;
digit = '0' + r;
if (digit > '9')
digit = digit+7;
a[count]=digit;
count++;
p=p/base;
} while (p!=0);
printf("\n%d in base %d is: \n",num, base);
for (i=count-1;i>=0;--i)
printf("%c",a[i]);
printf(".\n");
return 0;
}
答案 0 :(得分:0)
您可以检查输入是否为负。如果是,则将其乘以-1以得到一个正值,然后将该正值转换为另一个基数,然后再添加该负号。