位操作 << >> & | ^ ~
1.左移 << 左移一位相當乘以2,不管符號位
int a=12; // a:00000000000000000000000000001100 =12
a<<=1; // a:00000000000000000000000000011000 =24
2.右移 >> 有符號數,最高位1,高位擠進1,最高位0則擠進去0 無符號數 一律進0
short int a= -1; //11111111111111111111111111111110
a>>=1; //11111111111111111111111111111111
unsigend short int b;
b= 65535; 11111111111111111111111111111111
b=>>=1; 01111111111111111111111111111111
3.位與 & 都爲1則爲1。否則爲0
int a=12; //00000000000000000000000000001100
int b=6; //00000000000000000000000000000110
a=a&b; //00000000000000000000000000000100
4.位或| 有一個爲1則爲1。否則爲0
int a=12; //00000000000000000000000000001100
int b=6; //00000000000000000000000000000110
a=a|b; //00000000000000000000000000001110
5.位異 ^ 兩數相等其值爲0,反之爲1
int a=12; //00000000000000000000000000001100
int b=6; //00000000000000000000000000000110
a=a^b; //00000000000000000000000000001010
6.位反 ~ 取反操作
int a=12; //00000000000000000000000000001100
a=~a; //11111111111111111111111111110011
a=a&b; //00000000000000000000000000000100
關係操作符(EQ、NE、LT、LE、GT、GE)示例:
;EQ: 等於 ;NE: 不等於 ;LT: 小於 ;LE: 小於等於 ;GT: 大於 ;GE: 大於等於