Я не думаю, что это возможно, как вы хотите это сделать. Посмотрите доступные коды клавиш . Там вы видите, что, например, backspace
равно 8
и tab
равно 9
.
В двоичном коде это будет 1000
и 1001
. Используя бинарные операторы, вы бы использовали OR |
для «объединения» значений, что привело бы к 1001
.
Вы бы проверили, установлено ли значение с помощью AND &
, например, 1001
& 1000
чтобы увидеть, была ли нажата клавиша возврата. К сожалению, это также оценило бы к true
, если бы была нажата только клавиша табуляции (так как ее значение равно 1001
).
Тем не менее, вы можете использовать только такие методы побитового сравнения, если различные значения, которые вы хотите проверить, являются степенями только 2 , то есть 1, 2, 4, 8, 16, 32 и т. Д. , поскольку это представляет в двоичном виде 1
, 10
, 100
, 1000
, ...
Например, если у нас может быть переменная status
, возможные состояния будут OPEN = 2
, LIGHT ON = 4
и ALARM ON = 8
.
Предположим, что это OPEN
и LIGHT ON
, т.е.
0010
| 0100
-------
0110
Здесь мы можем легко проверить, включен ли ALARM
, используя AND: 0110 & 1000 = 0
. Но если мы закодируем ALARM ON
с помощью 6 = 0110
, мы не сможем проверить это.
То, что вы могли бы сделать, это сопоставить коды клавиш со значением некоторой степени 2 и применить там двоичные операции. Возможно, стоит прочитать статью Википедии о битовых масках .
Надеюсь, мои объяснения были как-то ясны.