gpt4 book ai didi

c++ - 如何在某个位置1或0设置二进制形式的数字

转载 作者:行者123 更新时间:2023-11-30 00:57:40 28 4
gpt4 key购买 nike

假设我有一个八位数字,我想在每个位位置设置数字1或零,这是动态情况。

假设这样的情况,用户输入两个相等或仅相差一个的数字,我想在每次从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;
}

最佳答案

您可以使用 AND 和 OR 二元运算符更改单个位。

例如:

//set first bit to 1
value |= 1;

//set fourth bit to 0
value &= ~(1<<3);

//set 6th bit to 1
value |= (1<<5);

关于c++ - 如何在某个位置1或0设置二进制形式的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7584127/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com