php - 优先级和位掩码操作

标签 php bit-manipulation bitwise-operators operator-precedence

我遇到了一个(看似)非常奇怪的案例。

取数字 2 (0b10) 并用 1 (0b01) 对其进行位掩码

这应该产生 0b00 相当于 0。

然而,这就是薛定谔先生的用武之地:

var_dump(0b10 & 0b01); // int(0)
var_dump(0b10 & 0b01 == 0); // int(0)
var_dump(0b10 & 0b01 != 0); // int(0)

威士忌。探戈。狐步舞。

诚然,我在位运算符方面并不是最敏锐的 - 所以也许我在某个地方出现了可怕的错误?

但是,在 Python 中:

0b10 & 0b01 == 0 =

0b10 & 0b01 != 0 =

...所以?

最佳答案

你实际上是这样做的:

var_dump(0b10 & (0b01 == 0));
var_dump(0b10 & (0b01 != 0));

试试:

var_dump((0b10 & 0b01) == 0);
var_dump((0b10 & 0b01) != 0);

关于php - 优先级和位掩码操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21975334/

相关文章:

java - Java 和 C++ 中的位移位差异 - 如何调和

algorithm - QOI 索引哈希函数的按位加权和

javascript - 为什么 ~5 === -6 在 JavaScript 中?

按位运算后的python数据类型(来自c语言)

php - MySQL Select Inner Join(唯一)

php - 无法将文本与容器中的图像对齐

php - TinyMCE 没有正确地将数据存储在数据库中

java - 如何正确执行按位运算

dependencies - 如何以独立于机器的方式创建掩码?

php - 具体的mysql记录列表