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