位运算在软件工程中的运用
在WINDOWS 驱动编程的WDK库中创建文件的IRP中,有一个Options整数,它的高8位记录了对文件的修改标记。因此可以使用下面的位运算来获取这8位的值:
ulDisposition = (lpIrpStack->Parameters.Create.Options >> 24) & 0xFF;
上面的语句中,先将该整数右移24位,再与0xFF做与运算,即可获得该8位的值。
此外,在实际应用中,会经常使用下面的宏定义来为一个整数设置,清除或者判断某些标志:
#define SETFLAG(a,n) ((a) |= (1<<(n)))//把整数a中的第n位置为1
#define CLEARFLAG(a,n) ((a) &= ~(1<<(n)))//把整数a中第n位置为0
#define FLAGON(a,n) ((a)&(1<<(n)))//判断整数a中第n位是否为1