我创建了一个程序将任何正十进制(基数 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;
}
您可以检查输入是否为负数。如果是,请将其乘以 -1 以产生正值,然后将该正值转换为另一个基数后,将该负号加回去。