[c][c++]按位操作

因为有时候需要大量的标志位来判断当前状态等。使用太多的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

 

posted @ 2018-03-23 16:04  南水之源  阅读(1711)  评论(0编辑  收藏  举报