c/c++按位操作

332次阅读

因为有时候需要大量的标志位来判断当前状态等。使用太多的int,bool等会使得程序不“漂亮”

 

这时候需要“位”操作来解决

 

建立一个标志位

unsigned int globalMark = 0;

在定义一些宏,如

#define CONTROL_W 0x01
#define CONTROL_A 0x02
#define CONTROL_S 0x04
#define CONTROL_D 0x08
#define CONTROL_Q 0x10
#define CONTROL_E 0x20
#define CONTROL_MAX 127
 

control_w就是00000001  而

control_a 就是 0000010

control_max就是01111111

 

gobalMark的位赋值

gobalMark |= CONTROL_W

 

gobalMark的位判断

gobalMark & CONTROL_W

 

gobalMark的位擦除

gobalMark &= ~CONTROL_W
yiywain
版权声明:本站原创文章,由 yiywain 2021-12-16发表,共计404字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。