#include <stdio.h> #define MASK 4 void main(void) { unsigned int x=7; x<<=1; x&=~MASK; printf("%#X\n",x); } //输出0XA 为什么
x = 7; //0111 x << 1; //1110 x &=~MASK; //相当于 x &=~(1<<2), 也就是2位置0, 最后结果为1010 二进制1010 相当于十六进制为0XA. &=~ MASK ,是很常见的位置0操作, MASK为1的位会被置0
二进制1010 相当于十六进制为0XA.
&=~ MASK ,是很常见的位置0操作, MASK为1的位会被置0