'<<='运算符做什么,叫什么?

What does the '<<=' operator do and what is it called?

本文关键字:什么 lt 运算符      更新时间:2023-10-16
  dy <<= 1;
  dx <<= 1;

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

这会向左移动dydx 1 位。

它等效于(除非 dy 和 dx 有运算符 =<<重载(

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

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

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

程序员认为这比乘以 2 更有效(事实并非如此,但可读性要低得多(的程序员认为这是一个丑陋的黑客。

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

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

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

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