gpt4 book ai didi

c++ - 如何用二元运算符的比较结果来解释条件?

转载 作者:太空宇宙 更新时间:2023-11-04 15:40:24 27 4
gpt4 key购买 nike

我有这个代码:

if((bob.prop & 0x100) == 0x100) {
// some code
}

我发现这部分:

bob.prop & 0x100

表示

is bob.prop set to 0x100?

所以,我认为它给了我对或错。但是这段代码的结果也与 0x100 进行了比较:

if((bob.prop & 0x100) == 0x100) {

这是什么?什么意思?

最佳答案

0x100 在二进制中是 0000000100000000,第 9 位已设置。

执行 bob.prop & 0x100bob.prop 中过滤掉第 9 位。例如:

bob.prop         & 0x100
1010110101110010 & 0000000100000000 gives 0000000100000000
0110110001101011 & 0000000100000000 gives 0000000000000000

之所以这样做,是因为它是两个操作数的按位与。这意味着结果将只有在两个操作数中都设置了位的位被设置。

然后您要检查结果是否等于 0000000100000000,这等同于询问“是否设置了第 9 位?”

没有必要执行最后的比较,因为任何大于 0 的整数值都将转换为 true,而 0 将转换为 false。你可以只写:

if(bob.prop & 0x100)

关于c++ - 如何用二元运算符的比较结果来解释条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24508073/

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