if (GetAsyncKeyState(key) & 0x8000)
Run Code Online (Sandbox Code Playgroud)
上面if语句中的“&”是什么意思?为什么我们需要使用它?
GetAsyncKeyState(key)
Run Code Online (Sandbox Code Playgroud)
将返回 16 位值。
这样的1010010101110110
最高位包含密钥状态。
1 010010101110110 最高位以粗体显示。
由于我们只对最高阶的值感兴趣并屏蔽其余的值,因此我们执行以下 & 按位运算 和 运算。
0x8000 是1 000000000000000 的十六进制表示。
==>
结果:
如示例所示,我们屏蔽除最高位以外的位,如果按下按键则设置最高位,否则为零。如果按下该键,则执行 if 块。
| 归档时间: |
|
| 查看次数: |
1494 次 |
| 最近记录: |