我正在尝试在程序中添加二进制数,但我对自己拥有的内容不满意,我的代码添加了这样的二进制数
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/