'<<='运算符做什么,叫什么?
What does the '<<=' operator do and what is it called?
dy <<= 1;
dx <<= 1;
这是我找到的一些C++代码,它对变量有什么作用,那个运算符叫什么?
这会向左移动dy
并dx
1 位。
它等效于(除非 dy 和 dx 有运算符 =<<重载(
dy = dy << 1;
dx = dx << 1;
如果 dx
和 dy
是整型类型,则相当于乘以 2。
请注意,左移负数是未定义的行为。
程序员认为这比乘以 2 更有效(事实并非如此,但可读性要低得多(的程序员认为这是一个丑陋的黑客。
此操作称为位移位 - 通过添加零,dy和dx的二进制表示向左移动一个符号。本质上,结果是 dx 和 dy 乘以 2(除非发生溢出(。
它是位移运算符。您可以使用指定的移位量以一种或另一种方式移位。
您发布的代码的含义与以下内容相同:
dx = dx << 1
,dy = dy << 1
。
相关文章:
- 为不同配置设置MSVC_RUNTIME_LIBRARY的正确方法是什么
- 警告处理为错误这里有什么问题
- 什么时候调用组成单元对象的析构函数
- #定义c-预处理器常量..我做错了什么
- 努力将整数转换为链表。不知道我在这里做错了什么
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 什么时候在C++中返回常量引用是个好主意
- 当在同一名称空间中有两个具有相同签名的函数时,会发生什么
- C++避免重复声明的语法是什么
- c++库的公共头文件中应该包含什么
- 问题:什么是QAbstractItemView::NoEditTriggers的反面
- 有什么方法可以遍历结构吗
- 当类在C++中定义时,有什么方法可以"register"类吗?
- ifstream什么都没读
- 在C++中,将大的无符号浮点数四舍五入为整数的最佳方法是什么
- 实现无开销push_back的最佳方法是什么
- 什么是模板&lt;&gt;inline bla bla
- &lt;&lt;&lt;的这些超载有什么区别操作员
- 这是做什么的?如果(无符号(dx) & lt;无符号(大小))
- 什么会导致死亡<<变量& lt; & lt;“ t";当输出超过终端宽度时,打印空白而不是值