gpt4 book ai didi

创建一个循环来切换值并存储新值以供进一步计算

转载 作者:行者123 更新时间:2023-11-30 15:57:41 26 4
gpt4 key购买 nike

我正在尝试创建以下循环:

int temp=0x07;

if(left sensor detects){
byteTx((temp)^(1<<0)); //(toggle bit 0)
}

if(right sensor detects){
byteTx((temp)^(1<<2)); //(toggle bit 2)
}

if(front sensor left || front sensor right detects){
byteTx((temp)^(1<<1)); //(toggle bit 1)
}

但是,每个其他 if 语句都会切换正确的值,但会重置其他值(因为 temp 为 0x07)。

问题:如何确保只切换所需的位,并保持其他位不变,即使它们被其他 if 语句切换。基本上我想存储输出并使用它而不是温度。

感谢您的帮助,如果您需要更多信息,请告诉我。

编辑

感谢您的回复,但我不是问如何切换,而是问如何确保切换的值在 IF 语句之间保持一致。

0x07 将继续重置在其他 IF 语句中切换的其他位,我想确保 IF 语句不会重置其他位。

示例

0000 0111 ^(1<<0)表示输出为0000 0110

但是 if 对于另一个 IF 语句:

0000 0111 ^(1<<2)表示输出为0000 0011

如您所见,结果是 0011,这会将第一个语句中的 0 位变回 1。

如何防止这种情况发生?

最佳答案

如果您想在切换后暂时保留切换位,则必须通过写回新状态来修改它。类似的东西

if(left sensor detects){
temp=(temp)^(1<<0); //(toggle bit 0)
byteTx(temp);
}

在循环结束时,temp 将拥有所有切换位。

关于创建一个循环来切换值并存储新值以供进一步计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10335664/

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