为什么在检查大写锁定时需要 & 0xFFFF
Why is & 0xFFFF needed when checking if caps lock on
我正在尝试检查 CAPS LOCK 是否打开。
我看到了以下行,我想知道为什么需要 AND with 0xFFFF 因为 AND with 0xFFFF 将 return 完全相同的数字。我读过 here,为了检查 CAPS LOCK 是否被切换,您需要检查低位,因此它应该是 AND 和 1。那么,为什么是 0xFFFF?
bool CapsLock = (((ushort)GetKeyState(0x14)) & 0xffff) != 0;
谢谢!
我同意 GSerg 的观点,不需要使用它。但通常使用and位运算符是为了获取部分值。
例如:
0x11ffff
0xffff
--------- AND
0xffff
您可以使用 this online bitwise calculator 了解其工作原理。
我正在尝试检查 CAPS LOCK 是否打开。 我看到了以下行,我想知道为什么需要 AND with 0xFFFF 因为 AND with 0xFFFF 将 return 完全相同的数字。我读过 here,为了检查 CAPS LOCK 是否被切换,您需要检查低位,因此它应该是 AND 和 1。那么,为什么是 0xFFFF?
bool CapsLock = (((ushort)GetKeyState(0x14)) & 0xffff) != 0;
谢谢!
我同意 GSerg 的观点,不需要使用它。但通常使用and位运算符是为了获取部分值。
例如:
0x11ffff
0xffff
--------- AND
0xffff
您可以使用 this online bitwise calculator 了解其工作原理。