dy <<= 1;
dx <<= 1;
那是我找到的一些 C++ 代码,它对变量做了什么,那个运算符叫什么?
向左移动1 位dy
。dx
它相当于(除非 dy 和 dx 有运算符 =<< 重载)
dy = dy << 1;
dx = dx << 1;
如果dx
和dy
是整数类型,则相当于乘以 2。
请注意,左移负数是未定义的行为。
这是一个丑陋的 hack,程序员认为这比乘以 2 更有效(这不是,但它的可读性要低得多)。
此操作称为位移 - 通过添加零将 dy 和 dx 的二进制表示向左移动一个符号。本质上,结果是 dx 和 dy 乘以 2(除非发生溢出)。
它是位移运算符。您可以使用您指定的移位量以一种或另一种方式移位位。
您发布的代码与以下内容相同:
dx = dx << 1
, 和dy = dy << 1
.