【发布时间】:2013-04-14 08:37:37
【问题描述】:
正如标题所说,我对<<= 所代表的内容有些困惑。我知道<< 是一个移位运算符,但这是我第一次看到= 和它一起出现。有什么解释吗?
示例代码:
#include <stdio.h>
main() {
unsigned int i, s;
for( s = i = 0; i <= 7; i++){
switch (i%3) {
case 0: i++;
case 1: i <<= (7 & (i + 1)) | ((i + 2) & 6); s += i; break;
case 2: i += (i ^ i) | 1 ; continue;
}
s++;
}
printf("%d\n", s);
}
【问题讨论】:
-
这很简单:
a <<= 7等于a = a << 7。 -
类似于
+=。但是将+替换为<<。 -
对像我这样的新手提出了一个他不知道答案的问题并在发布之前搜索了网络,因此投了 2 票(并且还在计数)。这个网站又是关于什么的? ://
-
另见:stackoverflow.com/q/2505550/220060(它不是重复的,因为它是不同的语言,但 C 和 C# 在这方面非常相似)。
-
@SheerFish:这是个好问题。 SO上有很多类似的问题,比如这个:stackoverflow.com/q/2462946/220060.