如何在 C++ 中添加两个二进制数?正确的逻辑是什么?
这是我的努力,但似乎不正确:
#include <iostream>
using namespace std;
int main()
{
int a[3];
int b[3];
int carry = 0;
int result[7];
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 <= 3; i++)
{
if(a[i] + b[i] + carry == 0)
{
result[i] = 0;
carry = 0;
}
if(a[i] + b[i] + carry == 1)
{
result[i] = 0;
carry = 0;
}
if(a[i] + b[i] + carry == 2)
{
result[i] = 0;
carry = 1;
}
if(a[i] + b[i] + carry > 2)
{
result[i] = 1;
carry = 1;
}
}
for(int j = 0; j <= 7; j++)
{
cout<<result[j]<<" ";
}
system("pause");
}
原文由 Muhammad Arslan Jamshaid 发布,翻译遵循 CC BY-SA 4.0 许可协议
嗯,这是一个非常微不足道的问题。
用于添加两个二进制数,a 和 b。您可以使用以下等式来执行此操作。
这是 半 加器的方程式。
现在要实现这一点,您可能需要了解 全 加器的工作原理。
由于您将二进制数存储在 int 数组中,因此您可能想了解 按位运算。您可以使用 ^ 进行异或,| OR 的运算符,AND 的 & 运算符。
这是计算总和的示例代码。