C++关于十进制转成二进制的问题

细节我都写注释里了

完整代码

# include <iostream>
using namespace std;

int main()
{
    //定义十进制变量,初始化数组
    int n, arr[100];
    //下标值
    int i = 0;
    cout << "请输入一个十进制数字:" << endl;
    for (cin >> n; n != 0; ++i)
    {
        /*/这里例如n=100
        arr的第一个数值 = (100%2 = 0)
        第一次n = (100/2 = 50)
        arr的第二个数值 = (50%2 = 0)
        第二次n = (50/2 = 25)
        依次类推直到n为0/*/
        arr[i] = n % 2;
        n = n / 2;
    }
    //cout << i << endl;
    //  注意:数组里面存的是倒序的二进制,输出的时候需要倒序输出
    /*/ 按照上面100的例子,此时i=7,但起始值是从0开始。所以需要减一得到数组最后一个数,循环体进行完再-1
        得到倒数第二个值,直到i=0结束循环体,最后得到倒序的二进制数/*/
    for (--i; i >= 0; --i)
    {
        cout << arr[i];
    }
    cout << endl;
    system("pause");
    return 0;
}

运行结果

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_45931878/article/details/108435011
今日推荐