我有一些东西尚未包裹我的脑袋; |操作数如何评估数字?
#include<iostream>
int main()
{
int x, y, z;
x = 2;
y = 4;
z = x | y;
}
Run Code Online (Sandbox Code Playgroud)
为什么z在这种情况下获得6分配; 这是如何运作的?
运算符|称为按位OR.它的真值表是
A B A|B ( operate on bits)
----------
0 0 0
0 1 1
1 0 1
1 1 1
Run Code Online (Sandbox Code Playgroud)
你的情况x=2和 y=4.通过假设两个x和y是32位的整数,而这样做x | y只是按照上面的表格.看起来像
MSB LSB <-- little enidian
x = 0000 0000 | 0000 0000 | 0000 0000 | 0000 0010
|
y = 0000 0000 | 0000 0000 | 0000 0000 | 0000 0100
-------------------------------------------------
z = 0000 0000 | 0000 0000 | 0000 0000 | 0000 0110 => 6
--------------------------------------------------
Run Code Online (Sandbox Code Playgroud)