我正在尝试在程序中添加二进制数,但我对自己拥有的内容不满意,我的代码添加了这样的二进制数

1010
+1111

但是我想更改它,以便当我输入二进制数字(如100010001)时,它应该添加
像这样
1010
+1111
我的代码由于两个数组和数组中的值而自动添加,我想从键盘输入二进制数,它应该像上面的示例一样
这是我的代码
int main()
{
    int a[4];
    int b[4];
    int carry=0;
    int result[5];


    a[0]=1;
    a[1]=0;
    a[2]=0;
    a[3]=1;

    b[0]=1;
    b[1]=1;
    b[2]=1;
    b[3]=1;

    for(int i=0; i<4; i++)
    {

        if(a[i]+b[i]+carry==3)
        {
        result[i]=1;
        carry=1;
        }
        if(a[i]+b[i]+carry==2)
        {
        result[i]=0;
        carry=1;
        }
        if(a[i]+b[i]+carry==1)
        {
        result[i]=1;
        carry=0;
        }
        if(a[i]+b[i]+carry==0)
        {
        result[i]=0;
        carry=0;
        }


    }
    result[4]=carry;
    for(int j=4; j>=0; j--)
    {
        cout<<result[j];

    }
    cout<<endl;

        return 0;
}

我是一个新手,如果有很多错误,请纠正我,并给我最好的建议,在此先感谢

最佳答案

好吧,我首先看到的是您不是从最右边开始的。二进制数加法与实数基数10的加法相同,因为您从右边开始并向左工作,无论剩下多少位,都将其附加到和的开头。

因此,与您一起:

9 + 15

1001 + 1111

我= 3
-> [] [] [] [0]->进位= 1

i = 2 ---> [] [] [0] [0] --->进位= 1

i = 1 ---> [] [0] [0] [0] --->进位= 1

i = 0 ---> [1] [0] [0] [0] --->进位= 1

噢,我们空间不足

因此,将进位附加到总和的前面:

[1] [1] [0] [0] [0] ---> 24

关于c++ - 修改我的代码中两个二进制数的加法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14973952/

10-09 17:15