位操作符:<<<<<<和<< =或>>和>> = c

时间:2011-07-31 08:13:12

标签: c bit-manipulation

请详细解释<<<<<<和<< =以及>>和>> =。 我知道转换运算符是如何工作的,但是当涉及到>> =或<< =。

时,我对它们不太确定。

3 个答案:

答案 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.