一、位操作运算
1.&与操作
&1不变,&0归零
- &1不变:1&1=1,0&1=0
- &0归零:1&0=0,0&0=0
2.|或操作
|1归1,|0不变
- |1归1:1|1=1,0|1=1
- |0不变:1|0=1,0|0=0
3.<<左移
#include <stdio.h>
int main()
{
printf("%d\n", 0x1);
//1
/*(0x1)H = (0001)B=(1)D*/
printf("%d\n", 0x1<<2);
//4
/*(0001)B<<2 = (0100)B = (4)D*/
printf("%d\n", ((0xf << 0) | (0xf << 4) | (0xf << 8) | (0xf << 12)) );
//65535
/*
(1111)B | (1111)B<<4 | (1111)B<<8 | (1111)B<<12
= (1111 | 1111,0000 | 1111,0000,0000 | 1111,0000,0000,0000)B
= (1111,1111,1111,1111)B
= (65535)D
*/
return 0;
}