首页 > 其他分享 >2024.04.19每日收获之链表与逻辑操作

2024.04.19每日收获之链表与逻辑操作

时间:2024-04-19 21:11:21浏览次数:15  
标签:2024.04 code 19 K4 链表 键值 reception 按键 define

今日处理工作时遇到了一个问题,操作非连发按键时也会唤醒机器,但不会有连发动作,查看代码了解到也是历史遗留问题。
它采用掩码形式,将多个按键键值或运算到一起,最后在与收到的按键值与运算来查看该按键是否可以连发,这样有一个弊端,即多个按键的按键值占用多个位,会导致非连发按键的键值也被包裹进或运算后的掩码里,导致一直接收按键唤醒。如
#define K1 0X01
#define K2 0X02
#define K3 0X0C
#define K4 0X04
#define code=(K1|K2|K3)
判断函数
if((code&reception)==reception) //reception为实际接收到的按键码值
{//一些处理}
这时会出现K4不在code里,但是也会进入到判断函数里,code=00001111,K4=00000100,因为code把K4的键值给包含了,导致误进入判断函数(如果每个键值只占一bit位,不会发生该现象)。
解决方法如下,不使用掩码,依次判断,如下
if((K1==reception)||(K2==reception)||(K3==reception))
{//一些处理}
或者更好的方法,采用链表数据,寻表查找键值,如下
#define K1 0X01
#define K2 0X02
#define K3 0X0C
#define K4 0X04
#define num (3)
#define const code[num]={K1,K2,K3}
for(i=0;i<num;i++)
{if(code[i]==reception)
{//一些处理}
}
此时不会再出现误进入的现象。

标签:2024.04,code,19,K4,链表,键值,reception,按键,define
From: https://www.cnblogs.com/xzaxs/p/18146785

相关文章

  • 2024.4.19
    2024.4.19【你知道的都是真相。只可惜那些并不是真相的全部。】Friday三月十一谷雨<BGM="谷雨--音阙诗听">AC:AnswerCoarse,粗劣的答案​CE:CompileEasily,轻松通过​PC:PerfectCompile完美的编译​WA:WonderfulAnswer,好答案​RE:RunExcellently,完......
  • 2024-04-19 前端常见面试题汇总(js篇)
    以下是前端面试中关于JavaScript的一些常见问题及其答案,共包含超过50个问题:1.解释一下JavaScript中的变量提升(Hoisting)。变量提升是指在JavaScript中,变量和函数的声明会被提升到其所在作用域的最顶部。但需要注意,只有声明会被提升,赋值操作不会。2.解释一下JavaScript中的闭包(C......
  • 2024-04-19 前端常见面试题汇总(html篇)
    1、xhtml和html有什么区别?语法要求:XHTML要求严格的XML语法,例如所有标签必须小写,所有标签必须关闭(即使是空元素也要使用闭合标签),所有属性必须使用引号。HTML语法相对更宽松,不强制要求标签闭合,标签和属性的大小写不敏感。文件类型:XHTML文档必须以.xml、.xhtml或者.xhtml......
  • L2-022 重排链表
    原题链接题解找到终点,然后终点往前移,起点往后移,奇数时输出终点所在位置..直到起点终点重合,这时输出尾节点是-1code#include<bits/stdc++.h>usingnamespacestd;structnode{intdata,next,from;}a[100005];intmain(){intstart,n;cin>>start>>n;......
  • 196. 删除重复的电子邮箱【Problem:Every derived table must have its own alias】
    SQL-Boy上线,最近在写SQL语句遇到了这样的问题。Problem:Everyderivedtablemusthaveitsownalias错误语句如下deletefromPersonwhereidnotin(selectidfrom(selectmin(id)asidfromPersongroupbyemail)......
  • ORA-19599 When Backing up an Archivelog that is Corrupt
    前几天遇到了一起备份失败案例,RMAN备份过程中遇到了归档日志损坏的情况,还是第一次遇到这种案例,这里记录一下这个案例的具体情况。备份作业失败,检查RMAN备份的输出日志,发现一个归档日志文件损坏(corrupt)了,如下所示:RMAN-08137: warning: archived log not deleted, needed f......
  • PKUSC2019 D1T1 题解
    前言五一网课的例题,但是网上没有详细的题解(其实就是都没放代码),所以来写一篇。题目可以在这里提交。题目简述有\(n\)(\(n\leq5\times10^5\))个村庄排成一排,每个村庄里有一个人。第\(i\)个村庄里的人要去第\(p_i\)个村庄,且\(p\)是\(1\simn\)的一个排列。他们出行......
  • 两种解法搞定链表相邻节点交换
    最近还是很喜欢用golang来刷算法题,更接近通用算法,也没有像动态脚本语言那些语法糖,真正靠实力去解决问题。下面这道题很有趣,也是一道链表题目,具体如下:24.SwapNodesinPairsSolvedMediumTopicsCompaniesGivenalinkedlist,swapeverytwoadjacentnodesandreturni......
  • JZ36二叉树排序树与双向链表
    /*structTreeNode{ intval; structTreeNode*left; structTreeNode*right; TreeNode(intx): val(x),left(NULL),right(NULL){ }};*/#include<cstddef>classSolution{public: TreeNode*ans=nullptr; //最终的链表 TreeNode*pre=nullptr; ......
  • 2024.04.18每日收获之联合体结构体内存分配
    今日学习组内前辈留下的代码,数码管动态扫描显示,发现前辈们用的是联合体定义扫描引脚,如:typedefunion{unsignedchara[2];typedefstruct{unsignedchardata0;unsignedchardata1;}data;}seg;此时数组a[2]和结构体里的data0和data1共用地址空间,修改数组或者data会产生相......