位運(yùn)算符是按照二進(jìn)制進(jìn)行運(yùn)算。
& 按位與 如果兩個(gè)相應(yīng)的二進(jìn)制位都為1谆级,則該位的結(jié)果值為1烤礁,否則為0
| 按位或 兩個(gè)相應(yīng)的二進(jìn)制位中只要有一個(gè)為1,該位的結(jié)果值為1
^ 按位異或 若參加運(yùn)算的兩個(gè)二進(jìn)制位值相同則為0肥照,否則為1
~ 取反 ~是一元運(yùn)算符脚仔,用來對(duì)一個(gè)二進(jìn)制數(shù)按位取反,即將0變1舆绎,將1變0
<< 左移 用來將一個(gè)數(shù)的各二進(jìn)制位全部左移N位鲤脏,右補(bǔ)0
>> 右移 將一個(gè)數(shù)的各二進(jìn)制位右移N位,移到右端的低位被舍棄,對(duì)于無符號(hào)數(shù)猎醇,高位補(bǔ)0
1. 按位與 &
- 運(yùn)算規(guī)則:0&0=0; 0&1=0; 1&0=0; 1&1=1窥突;
- 如果兩個(gè)相應(yīng)的二進(jìn)制位都為1,則該位的結(jié)果值為1硫嘶,否則為0
- 例如:3|5 即 0011 & 0101 = 0001
2. 按位或 |
- 運(yùn)算規(guī)則:0|0=0阻问; 0|1=1; 1|0=1沦疾; 1|1=1称近;
- 兩個(gè)相應(yīng)的二進(jìn)制位中只要有一個(gè)為1,該位的結(jié)果值為1
- 例如:3|5 即 0011 | 0101 = 0111
3. 異或 ^
- 運(yùn)算規(guī)則:0^0=0哮塞; 0^1=1刨秆; 1^0=1; 1^1=0忆畅;
- 參加運(yùn)算的兩個(gè)二進(jìn)制位值相同則為0衡未,否則為1(不進(jìn)位加法)
- 與0相異或,保留原值
- 交換a和b的值
- a=a^b
- b=b^a
- a=a^b
- 例如:3|5 即 0011 ^ 0101 = 0110
4. 取反 ~
- 運(yùn)算規(guī)則:~1=0邻眷; ~0=1眠屎;
- 即將0變1,將1變0
- 例如:3 即 ~0011 = 1100
5. 左移 <<
- 將一個(gè)數(shù)的各二進(jìn)制位全部左移N位肆饶,右補(bǔ)0
- 例如:3 即 0011<< =0110
6. 右移 >>
- 將一個(gè)數(shù)的各二進(jìn)制位右移N位改衩,移到右端的低位被舍棄,對(duì)于無符號(hào)數(shù)驯镊,高位補(bǔ)0
- 例如:3 即 0011 >> = 0001