请详细解释<<<<<<和<< =以及>>和>> =。 我知道转换运算符是如何工作的,但是当涉及到>> =或<< =。
时,我对它们不太确定。答案 0 :(得分:7)
好<<
只向左移。 <<=
左移和分配。
<<=
是<<
+=
到+
的内容。
正如MByD所建议的,这是一个例子
int x = 1;
/* Print 32. */
printf("%d\n", x << 5);
/* x stays the same. */
printf("%d\n", x);
x <<= 5;
/* x has become 32. */
printf("%d\n", x);
答案 1 :(得分:3)
在C和许多其他语言中,您可以将=
放在操作符后面作为快捷方式。而不是写...
x = x + 5
......我可以写......
x += 5
这些被称为compound assignment operators。您只是看到了这些用于位移操作的版本。
x >>= 1
...与...相同
x = x >> 1
答案 2 :(得分:3)
&LT;&LT;可以用于变量和常量。
5 << 2; // this is ok.
a << 2; // this is ok too.
&lt;&lt; =将改变左值,以便:
a <<= 2; // bit-shifts a by two positions.
5 <<= 2; // wrong, 5 is 5 and will always be 5.