2011-05-26 121 views
14

<<=|=在C中是什么意思?我知道<<是bitshift等,但我不知道这些是什么组合。<< =的意义和| =

回答

26

就像x += 5意味着x = x + 5x <<= 5也意味着x = x << 5

同样为|。这是一个按位or,所以x |= 8意味着x = x | 8

下面是一个例子来阐明:

int x = 1; 
x <<= 2;   // x = x << 2; 
printf("%d", x): // prints 4 (0b001 becomes 0b100) 

int y = 15; 
y |= 8;   // y = y | 8; 
printf("%d", y): // prints 15, since (0b1111 | 0b1000 is 0b1111) 
+1

当然,非常感谢!我会在9分钟内接受你的回答。 :) – SK9 2011-05-26 06:17:36

+0

@ SK9:太好了!很高兴有帮助。 =) – 2011-05-26 06:18:34

+5

15 |顺便说一句,8 = 15。 – 2011-05-26 06:30:59