按位與(&):對(duì)兩個(gè)二進(jìn)制數(shù)的每一位進(jìn)行與運(yùn)算,結(jié)果為1的位置上為1,其他位置上為0
1
。
按位或(|):對(duì)兩個(gè)二進(jìn)制數(shù)的每一位進(jìn)行或運(yùn)算,結(jié)果為1的位置上為1,其他位置上為0
1
。
按位異或(^):對(duì)兩個(gè)二進(jìn)制數(shù)的每一位進(jìn)行異或運(yùn)算,結(jié)果為1的位置上為0,其他位置上為1
1
。
取反(~):對(duì)一個(gè)二進(jìn)制數(shù)進(jìn)行取反運(yùn)算,即將0變?yōu)?,將1變?yōu)?
1
。
左移(<<):將一個(gè)二進(jìn)制數(shù)向左移動(dòng)指定的位數(shù),右邊的位數(shù)用0填充
1
。
右移(>>):將一個(gè)二進(jìn)制數(shù)向右移動(dòng)指定的位數(shù),對(duì)于無(wú)符號(hào)數(shù)高位補(bǔ)0,對(duì)于有符號(hào)數(shù),有的編譯器補(bǔ)符號(hào)位(算術(shù)右移),有的補(bǔ)0(邏輯右移)
2
3
。
位運(yùn)算符號(hào)的特點(diǎn)和用途:
按位與(&):常用于清零操作或提取某一位的值。例如,3&5的結(jié)果為1,因?yàn)槎M(jìn)制表示中只有第三位同時(shí)為1。011 & 101 = 1
按位或(|):用于設(shè)置某一位為1。例如,3|5的結(jié)果為7,因?yàn)槎M(jìn)制表示中第三位被設(shè)置為1。011 I 101 = 111 = 7
按位異或():用于翻轉(zhuǎn)某一位的值。例如,35的結(jié)果為6,因?yàn)槎M(jìn)制表示中第三位被翻轉(zhuǎn)。 011 ^ 0101 = 110 =6
取反():用于反轉(zhuǎn)一個(gè)數(shù)的所有位。例如,3的結(jié)果為-4,因?yàn)槎M(jìn)制表示中的所有位都被翻轉(zhuǎn)。011~ = 100 別忘了正數(shù)轉(zhuǎn)負(fù)數(shù)
左移(<<):用于將一個(gè)數(shù)的所有位向左移動(dòng)指定的位數(shù),相當(dāng)于乘以2的n次方。例如,3<<2的結(jié)果為12,因?yàn)槎M(jìn)制表示向左移動(dòng)兩位。101<<2 = 10100 = 12 =322(這里的n就是你左移的位數(shù))
右移(>>):用于將一個(gè)數(shù)的所有位向右移動(dòng)指定的位數(shù),相當(dāng)于除以2的n次方。例如,12>>2的結(jié)果為3,因?yàn)槎M(jìn)制表示向右移動(dòng)兩位。10100>>2=101=3相當(dāng)于12/4=3(這里的n就是你左移的位數(shù)2)