在C++中添加两个二进制数组
Adding two binary arrays in C++
如何在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;
}
相关文章:
- 添加两个二进制数(整数数组)
- 在 NDK 上编译两个带有 gradle 的项目,其中一个依赖于另一个的二进制文件
- 查找两个二进制输入 C++ 的 xNOR 位
- 如何使用 Boost Spirit x3 编写具有两个后操作数语法的二进制运算符?
- 两个派生类(十六进制 二进制)的虚拟功能
- 十进制到二进制,有两个补码
- 两个程序的不同输出将一个数字转换为二进制
- 寻求GMP二进制搜索:如何使用MEMCMP比较两个GMP MPZ_T
- 修改filter_iterator谓词以接受BOOST中的两个参数(二进制fn)
- 如何在位级别添加两个二进制数时忽略一个位块
- 二进制的两个整数的乘积
- 在C++中添加两个二进制数组
- 确定两个矢量类型或一个矢量类型与标量类型之间的二进制运算结果的正确大小类型
- 使用环绕式c++对两个数字进行二进制加法运算
- 给出两个二进制数,将一个子集从一个复制到另一个
- 比较两个二进制数,得到不同的位
- c++中两个二进制数相加的函数
- 用一个阈值比较两个二进制数组(近似匹配)
- XOR 两个二进制字符串 c++
- 修改我的代码中两个二进制数字的加法