在 C++ 中添加两个二进制数组

Adding two binary arrays in C++

如何添加两个二进制数组(8 位)并将结果存储在 visual studio 2010 - C++ 中的第三个二进制数组中。 示例:A=00100011 B=11011100 result_array=11111111

我尝试使用此方法将 B(具有十进制值)转换为二进制: std::string binary2 = std::bitset<8>(B).to_string();

但是当我添加两个二进制数组并将它们存储到第三个整数数组时,第三个数组没有从添加操作中获取任何值结果并且仍然具有默认值(即 00000000)

提前致谢!

如果您想要的结果是按位操作(如下所示):

 10101011 
+11011100
=11111111

然后你需要使用按位或(|)

uint8_t a = 0x23;
uint8_t b = 0xDC;

uint8_t c = a | b;

如果你想做简单的加法,比如:

 00000001 
+00000011
=00000100

那就是加法。

uint8_t a = 1;
uint8_t b = 2;

uint8_t c = a + b;

将二进制数组称为布尔数组并从后面开始工作:

    #include <iostream>

    int main(int argc, char* argv[])
    {
        bool a[8]={0,0,1,0,0,0,1,1};
        bool b[8]={1,1,0,1,1,1,0,0};
        bool c[8];

        bool remainder=false;
        for(int x=7;x>=0;x--)
        {
            unsigned sum=0;
            if(remainder)++sum;
            if(a[x])++sum;
            if(b[x])++sum;
            if(sum%2==1)c[x]=true;
            else c[x]=false;
            if(sum>1)remainder=true;
            else remainder=false;
        }
        for(unsigned x=0;x<8;++x)
        {
            std::cout << c[x];
            if(x!=7)std::cout << ",";
        }
        std::cout << std::endl;

        return 0;
    }