C++ "|="赋值运算符
C++ "|=" assignment operator
我的问题是,C++中的"|="是什么?我知道他们是按位运算符,但我不明白他们在这里做什么:
gObj->Variable |= 0x1000000;
另外,在这种情况下,"&"运算符是什么意思?
if ((gObj->Variable & 2) == 2)
{
do stuff
}
这些是按位运算。
|
代表 OR 操作,&
代表 AND 操作。
x |= y
相当于
x = x | y
将这些操作与十六进制值一起使用是很常见的,因为它更容易且非常直观。例如:
0x10 | 0x01 = 0x11
0x10 & 0x01 = 0x00
0x10 & 0x11 = 0x10
我不是C++专家,但我相信这些被视为 += 或 *=。 也就是说,它将按位或具有您提到的十六进制数的变量位。 此外,Variable & 2 正在用 10(二进制)进行按位 AND。
它是
按位或运算符,上面的语句会将变量的第一位设置为 1。
相关文章:
- 重载Singly Linked List中的赋值运算符
- 使用赋值运算符重载从类中返回jobject
- 标准库类型的赋值运算符的引用限定符
- 复制构造函数、赋值运算符C++
- 标准::变体的赋值运算符
- 移动赋值运算符;尝试引用已删除的函数.我该如何解决这个问题?
- 基类和派生类的多态赋值运算符
- 为用户定义的类正确调用复制构造函数/赋值运算符
- CRTP 中的复制赋值运算符 - gcc vs clang 和 msvc
- 为什么初始化时没有调用重载赋值运算符?
- 赋值运算符重载和自赋值
- C++矢量复制构造函数和赋值运算符是否也复制保留空间?
- Qt PL/SQL - 赋值运算符 - 字符串缓冲区太小
- 对 r 值使用移动赋值运算符时的异常
- 由于没有使用赋值运算符,映射的值是如何初始化的?
- 默认赋值运算符如何在实际 STL 中实现
- 使用赋值运算符复制 std::vector
- C++ 通过自定义赋值运算符隐式转换函数参数
- 赋值运算符的奇怪行为
- C++赋值运算符,我们可以用 copy 替换它吗?