gpt4 book ai didi

c++ - Int 被视为 bool,& 运算符

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:26:43 25 4
gpt4 key购买 nike

我已经为我的一部分代码苦苦挣扎了一段时间,我终于发现问题出在一个简单的测试上,它没有给我预期的结果。

if (2) //=> true
if (2 & true) //=> false
if (bool(2) & true) //=> true

我不明白的是为什么第二行会导致 false。我的理解是,每个非零整数在测试中都被认为是真实的。

最佳答案

因为2true之间的位与是false。

&(按位运算符)不同于&&(逻辑运算符)。

true 转换为 int1

所以 2 & true2 & 1,这是错误的 - 因为 0000000000000010 & 0000000000000001 == 0。 (位可能会有所不同)

鉴于 bool(2) == 1,并且 1 & 1true

关于c++ - Int 被视为 bool,& 运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11157156/

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