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

Adding two binary arrays in C++

本文关键字:两个 二进制 数组 C++ 添加      更新时间:2023-10-16

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

我试着用这个把B(有十进制值)转换成二进制:std::string binary2=std::位集<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;
    }