首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >创建键盘修饰符位掩码+ ASCII代码

创建键盘修饰符位掩码+ ASCII代码
EN

Stack Overflow用户
提问于 2020-10-03 08:20:53
回答 1查看 96关注 0票数 0

我想要将三个键盘修饰符(CTRL、ALT、SHIFT) +所按键的ASCII代码编码为一个值。这自然属于位掩码的范畴。我可以这样做的一种方法是,发送者将每个密钥编码如下:

代码语言:javascript
运行
复制
CTRL: 1000
ALT: 10000
SHIFT: 100000
KeyCode: 1-255

例如,如果我单击所有修饰符+ ascii表中的最后一个键,我将得到: 100000 + 10000 + 1000 + 255 = 111255。然后,接收方可以做减法,并检查数字是否低于0:

代码语言:javascript
运行
复制
has_shift = X - 100000 < 0
has_alt = X - 10000 < 0
has_ctrl = X - 1000 < 0
if has_shift
   X -= 100000
if has_alt
   X -= 10000
if has_ctrl
   X -= 1000
keyCode = X (the remainder)

当然,我觉得这很可怕,我会假设这可以通过使用位移位或类似的方式更好地完成。怎样才能做得更好呢?

EN

回答 1

Stack Overflow用户

发布于 2020-10-03 11:29:44

而是分别为ctrl、alt、shift添加256、512和1024。然后在您正在使用的任何语言中使用and运算符(问题标签中缺少)来提取修饰符和代码。在C和许多语言中,运算符是&。因此,如果按下shift,则X & 1024不为零。X & 255是字符代码。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64179571

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档