0
  dy <<= 1;
  dx <<= 1;

那是我找到的一些 C++ 代码,它对变量做了什么,那个运算符叫什么?

4

3 回答 3

5

向左移动1 位dydx

它相当于(除非 dy 和 dx 有运算符 =<< 重载)

dy = dy << 1;
dx = dx << 1;

如果dxdy是整数类型,则相当于乘以 2。

请注意,左移负数是未定义的行为。

这是一个丑陋的 hack,程序员认为这比乘以 2 更有效(这不是,但它的可读性要低得多)。

于 2012-05-19T13:45:32.223 回答
0

此操作称为位移 - 通过添加零将 dy 和 dx 的二进制表示向左移动一个符号。本质上,结果是 dx 和 dy 乘以 2(除非发生溢出)。

于 2012-05-19T13:46:33.643 回答
0

它是位移运算符。您可以使用您指定的移位量以一种或另一种方式移位位。

您发布的代码与以下内容相同:

dx = dx << 1, 和dy = dy << 1.

于 2012-05-19T13:49:45.407 回答