gpt4 book ai didi

c++ - 这里的 & 运算符是什么意思?

转载 作者:搜寻专家 更新时间:2023-10-31 00:01:07 24 4
gpt4 key购买 nike

我正在阅读一些关于 qt 中 openGL 的教程。其中一个鼠标事件槽中包含以下代码:

if (event->buttons() & Qt::LeftButton) {    
rotationX += 180 * dy;
rotationY += 180 * dx;
updateGL();
}

& 运算符在 if 语句中的作用是什么?它与 == 完全一样吗?

最佳答案

它与== 不同。它是按位与 运算符。该表达式的作用是它从 event->buttons() 获取返回值,并将其与 Qt::LeftButton 表示的值按位与 。如果结果值非零,则 block 正在执行。

本质上,它检查 Qt::LeftButton 指定的按钮是否被按住。

此处使用按位与 运算符的原因是位掩码。这意味着 event->buttons() 的返回值只是一个值,它的位代表不同类型的状态。这里的 &-operator 所做的是检查某些位(由 Qt::LeftButton 表示)是否在 返回的值中被设置(1)或取消设置(0)事件->按钮()。如果未设置测试位,则返回值为零;如果至少设置了一个测试位,则返回值为非零。

可以在此处找到有关按位运算如何工作的更多详细信息:Wikipedia article about Bitwise operations

关于c++ - 这里的 & 运算符是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11164617/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com