修改我的代码中两个二进制数字的加法
modifying the addition of two binary numbers in my code
我试图在我的程序中添加二进制数,但我对我所拥有的不满意,我的代码添加了像这样的二进制数
1010
+1111
但我想更改它,这样当我输入像100010001这样的二进制数时,它应该加像这样1010+1111由于有两个数组和数组中的值,我的代码会自动添加,我想从keybord输入二进制数,它应该像上面的例子一样这是我的代码
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
i=3-->[][][][0]->进位=1
i=2-->[][][0][0]-->carry=1
i=1-->[][0][0][0]--->进位=1
i=0-->[1][0][0][0]--->进位=1
哦,不,我们的空间用完了
所以把进位加到和的前面:
[1] [1][0][0][0]--->24
这是一个非常琐碎的问题。
如何在c++中添加两个二进制数。它的逻辑是什么。
对于添加两个二进制数,a和b。您可以使用以下公式来进行添加。
sum=a xor b
carry=ab
这是半加法器的方程式。
现在要实现这一点,您可能需要了解Full Adder是如何工作的。
sum=a xor b xor c
carry=ab+bc+ca
由于您将二进制数存储在int数组中,所以您可能需要了解按位运算。您可以使用^表示XOR,|运算符表示OR,&AND的运算符。
这是一个计算总和的示例代码。
对于(i=0;i<8;i++){
sum[i]=(((a[i]^b[i])^c);//c是携带
c=((a[i]和b[i])|(a[i]&c))|(b[i]&aamp;c);
}
- C++通过数字比较两个数字
- 将向量之间的数字放在另一个向量之间<vector>>如果两个数字的差值为 1
- 在 txt 文件中显示前两个数字的程序
- 两个有符号数字之间的距离
- 形成一个斐波那契三角形,使得每个数字是上面左对角线或右对角线上两个数字的总和
- 将数字表示为两个三角形数字的总和
- 两个数字的对称配对功能
- 无法理解代码背后的逻辑,这是在两个给定数字之间生成素数的优化问题
- 查找中间两个数字的正则表达式的匹配项
- 使用C++具有两个数字的最短路径算法.(C++)
- 将两个数字添加为链表
- C++ 分段错误:11 错误,同时编码将两个数字相加的链接列表
- 如何对两个 4 位数字进行乘法,将它们视为 C++ 中的多项式
- 在手臂氖中高效计算两个不同的数字
- 如何在 c++ 中添加两个大的双精度数字
- 我应该如何使用remove_if删除两个数字范围内的元素
- 两个程序的不同输出将一个数字转换为二进制
- 二进制的两个整数的乘积
- 使用环绕式c++对两个数字进行二进制加法运算
- 修改我的代码中两个二进制数字的加法