一元运营商如何工作?
一元运算符'&'如何工作?
在一个测试项目中,我运行了这段代码:
int num = 50, num2 = 100;
int x = num & num2;
结果:x = 32
int num = 100, num2 = 90;
int x = num & num2;
结果:x = 64
这是如何计算的?
来自MSDN:
二进制和运算符是为整型和布尔值预定义的。 对于整数类型,&计算其操作数的逻辑按位与。 对于bool操作数,&计算其操作数的逻辑与; 也就是说,当且仅当它的两个操作数都为真时,结果才为真。
在你的情况下,它是integeral类型的版本。
所以:
50 in binary is 00110010
100 in binary is 01100100
AND result is 00100000 (32 dec)
按位运算符在位上工作并执行按位操作。
如果二进制AND运算符存在于两个操作数中,则它们会复制结果。
(A & B) = 12, i.e., 0000 1100
二进制值
50 (10 ) = 0110010 (2)
100 (10) = 1100100 (2)
并且使用一个逻辑AND,因此只有两个值都为1的位现在变成了一个:
0100000 (2) = 32 (10)
和
100 (10) = 1100100 (2)
AND
90 (10) = 1011010 (2)
------------------------
64 (10) = 1000000(2)
链接地址: http://www.djcxy.com/p/72661.html