Почему

#c# #.net #capslock

#c# #.net #capslock

Вопрос:

Я пытаюсь проверить, включена ли БЛОКИРОВКА заглавными буквами. Я видел следующую строку, и мне было интересно, зачем нужен AND с 0xFFFF, поскольку И с 0xFFFF вернет точно такое же число. Я здесь прочитал, что для того, чтобы проверить, включен ли CAPS LOCK, вам нужно проверить бит младшего порядка, следовательно, он должен быть И с 1. Итак, почему 0xFFFF?

 bool CapsLock = (((ushort)GetKeyState(0x14)) amp; 0xffff) != 0;
  

Спасибо!

Комментарии:

1. Если GetKeyState это на самом деле GetKeyState , то 0xffff совершенно бессмысленно. Если это пользовательская оболочка, возвращающая int , у нее может быть цель.

Ответ №1:

Я согласен с GSerg в том, что его не нужно использовать. Но обычно побитовый оператор and используется для получения части значения.

например:

 0x11ffff
0xffff 
--------- AND
0xffff
  

Вы можете использовать этот побитовый калькулятор, чтобы понять, как это работает.