C++ 在C+中添加两个二进制数组+; =0;x--) { 无符号和=0; 如果(余数)+和; 如果(a[x])++和; 如果(b[x])++和; 如果(和%2==1)c[x]=true; else c[x]=假; 如果(总和>1)余数=真; 否则余数=假; } 对于(无符号x=0;x请显示您的代码。如果输入都是00000001,您希望得到什么输出?00100011&11011100是00000000。应该是|(按位或)要获得11111111,不清楚OP是否希望0x01+0x01为0x01或0x10。如果是后者,则您的建议无效。两个好的评论。在OP的问题中,他声明所需的输出为0xFF(实际上不是加法,而是按位or)@Chad-可能是加法,这个例子是不明确的。你是对的。在这个案例中,你抢先回答了问题。所以我刚刚给出了两个例子。 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; }

C++ 在C+中添加两个二进制数组+; =0;x--) { 无符号和=0; 如果(余数)+和; 如果(a[x])++和; 如果(b[x])++和; 如果(和%2==1)c[x]=true; else c[x]=假; 如果(总和>1)余数=真; 否则余数=假; } 对于(无符号x=0;x请显示您的代码。如果输入都是00000001,您希望得到什么输出?00100011&11011100是00000000。应该是|(按位或)要获得11111111,不清楚OP是否希望0x01+0x01为0x01或0x10。如果是后者,则您的建议无效。两个好的评论。在OP的问题中,他声明所需的输出为0xFF(实际上不是加法,而是按位or)@Chad-可能是加法,这个例子是不明确的。你是对的。在这个案例中,你抢先回答了问题。所以我刚刚给出了两个例子。 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; },c++,arrays,visual-studio-2010,binary,C++,Arrays,Visual Studio 2010,Binary,我试着用它将B(有十进制值)转换成二进制: std::string binary2=std::bitset(B).to_string() 但是当我添加两个二进制数组并将它们存储到第三个整数数组中时,第三个数组没有从添加操作中获取任何值结果,并且仍然具有默认值(00000000) 提前谢谢 如果您想要的结果是按位操作(如中所示): 然后需要使用位或(|) 如果要进行简单的添加,例如: 00000001 +00000011 =00000100 那就是加法 uint8_t a = 1; uint

我试着用它将B(有十进制值)转换成二进制: std::string binary2=std::bitset(B).to_string()

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


提前谢谢

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

然后需要使用位或(
|

如果要进行简单的添加,例如:

 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;
    }
#包括
int main(int argc,char*argv[])
{
boola[8]={0,0,1,0,0,0,1,1};
布尔b[8]={1,1,0,1,1,1,0,0};
boolc[8];
布尔余数=假;
对于(int x=7;x>=0;x--)
{
无符号和=0;
如果(余数)+和;
如果(a[x])++和;
如果(b[x])++和;
如果(和%2==1)c[x]=true;
else c[x]=假;
如果(总和>1)余数=真;
否则余数=假;
}

对于(无符号x=0;x请显示您的代码。如果输入都是00000001,您希望得到什么输出?00100011&11011100是00000000。应该是
|
(按位或)要获得11111111,不清楚OP是否希望
0x01+0x01
0x01
0x10
。如果是后者,则您的建议无效。两个好的评论。在OP的问题中,他声明所需的输出为
0xFF
(实际上不是加法,而是按位or)@Chad-可能是加法,这个例子是不明确的。你是对的。在这个案例中,你抢先回答了问题。所以我刚刚给出了两个例子。
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;
    }