异或:可以理解为不带进位的二进制加法;
在程序中使用异或的一些性质,可以提高开发的速度和程序的可读性;
下边的程序实例,介绍了一种需要大量处理位操作的程序结构,对位操作的方式做了归一化的处理,可以避免类似程序难以阅读和差错的问题;
#include <stdio.h>
#include <stdlib.h>
#include "string.h"
//通过使用掩码,可以实现对不同位的操作的集中管理
#define FUN_INDEX 2
#define FUN_MASK 0x08
#define FUN_STATE_ON 0x08
#define FUN_STATE_OFF 0x00
int main()
{
unsigned char x[3] = {0};
x[FUN_INDEX] = 0xf1; //测试
x[FUN_INDEX] = (x[FUN_INDEX] & (0xff ^ FUN_MASK)) | FUN_STATE_ON; //只改变相应的位
printf("x[FUN_INDEX] = %x\n",x[FUN_INDEX]);
return 0;
}
输出
x[FUN_INDEX] = f9