我如何为我的代码添加负值?数字系统转换

问题描述 投票:0回答:1

我创建了一个程序,可以将任何正的十进制数(以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;
}
c++ c base
1个回答
0
投票

您可以检查输入是否为负。如果是,则将其乘以-1以得到一个正值,然后将该正值转换为另一个基数,然后再添加该负号。

© www.soinside.com 2019 - 2024. All rights reserved.