首页 > 解决方案 > 以正确的顺序从十进制转换为二进制

问题描述

我是一个完整的 C++ 菜鸟,我们必须在学校做一个程序来计算一个数字的交叉和,然后将该数字转换为二进制数。

我现在遇到的问题是二进制数的顺序相反。我想将数字添加到数组中,然后从右到左计算数组,但我不知道该怎么做。:/

有人可以解释/告诉我怎么做吗?

我正在使用 do while 循环,因为这是任务的要求......

int main()
{
    int digit, sum = 0, rem;

    cout<<"Enter a positive digit" << endl;
    cin >>  digit;

    do {
        sum= sum + (digit%10); 
        digit /= 10;
    }
    while (digit!= 0);

    cout <<"Cross sum" << sum << endl; 

    do {
        rem = sum % 2;
        sum /= 2;
        cout << "Decimal in Binary: " << rem << endl;
    }
    while(sum>0);

    return 0;
}

标签: c++arrays

解决方案


此函数将以正确的顺序将十进制打印为二进制:

void decToBin(int n) {
    if (n == 0) {
        return;
    }
    decToBin(n / 2);
    cout << n % 2;
}

推荐阅读