符号"&"在GetAsyncKeyState中

时间:2016-12-24 16:06:48

标签: c++ if-statement

if (GetAsyncKeyState(key) & 0x8000)

"&"是什么意思?在上面的if语句中?为什么我们需要使用它?

2 个答案:

答案 0 :(得分:3)

GetAsyncKeyState(key)

将返回16位值。

10100101011101101

最高位包含键状态。

1 0100101011101101粗体的最高位。

由于我们只对最高订单的价值感兴趣并屏蔽其余部分,因此我们执行以下操作& 按位和操作

0x8000是 1 0000000000000000的十六进制表示。

key&为0x8000

==>

1 0100101011101101 GetAsyncKeyState(key)

&安培;

1 0000000000000000 0x8000

结果:

1 0000000000000000 评估为真的值

如示例所示,如果按下该键,则我们屏蔽除最高位之外的位,否则为零。如果按下该键,将执行阻止。

答案 1 :(得分:1)

检查alt键是否已关闭。

它是{{1}}运营商。