一元运营商如何工作?

一元运算符'&'如何工作?

在一个测试项目中,我运行了这段代码:

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

上一篇: How does Unary Operator '&' work

下一篇: iphone: How to mix enum like NSCalendar