假设我有一个8位数字,我想在每个位置设置1或者0的位置,这是动态的情况。如何在某个位置设置一个二进制数字1或者0
假设例如这样的情况,用户输入两个相等或仅相差一个的数字,并且我希望在每个迭代中从0位到7位,将这些0和1写成二进制形式的数字,我怎么能在循环中实现它?请帮帮我。
一个例子:
int result = 0;
for (int i = 0; i < 8; i++) {
int x, y;
cin >> x >> y;
if (x == y) {
// set at i position 0;
}
else if ((x-y) == 1) {
// set at i position 1;(in result number)
}
}
更新: 它是什么我想要实现: 添加两个8位二进制补码数 这里是这个
#include <iostream>
using namespace std;
int main(){
int x,y;
cin>>x>>y;
int result=0;
int carry=0;
int sum=0;
for (int i=0;i<8;i++){
sum=carry;
sum+= (x&(1<<i));
sum+=(y&(1<<i));
if (sum>1){
sum-=2;
carry=1;
}
else{
carry=0;
}
result|=sum;
result<<=1;
}
cout<<result<<" "<<endl;
return 0;
}
请作出努力,格式化你的散文和代码的可读的方式。 – spraff