乙個下午的時間總算弄清楚c++各個操作符的使用方法,這個地方一直弄不清楚,今天終於有空把它弄清晰了
一:位操作符
1. & 操作符 (按位與)
運算子"&"是雙目運算子。 其功能是參與運算的兩數各對應的二進位相與。只有對應的兩個二進位均為1時,結果位才為1 ,否則為0。參與運算的數以補碼方式出現。
例如:9&5
可寫算式如下:
00001001
&00000101
=00000001
2. | 操作符 (按位或)
運算子「^」是雙目運算子。 其功能是參與運算的兩數各對應的二進位相異或,當兩對應的二進位相異時,結果為1。參與運算數仍以補碼出現
例如:9|5
可寫算式如下:
00001001
|00000101
=00001101
3. ^ 操作符(按位異或)
運算子「^」是雙目運算子。 其功能是參與運算的兩數各對應的二進位相異或,當兩對應的二進位相異時,結果為1。參與運算數仍以補碼出現
例如:9^5
可寫算式如下:
00001001
^00000101
=00001100
4. ~ 操作符(求反)
運算子~為單目運算子,具有右結合性。 其功能是對參與運算的數的各二進位按位求反
例如:~(1001)
可寫算式如下:
0110
5. << 操作符(左移運算子)
「<<」是雙目運算子。左移n位就是乘以2的n次方。 其功能把「<<」左邊的運算數的各二進位全部左移若干位,由「<<」右邊的數指定移動的位數,高位丟棄,低位補0
例: a<<4 指把a的各二進位向左移動4位。如a=00000011(十進位制3),左移4位後為00110000(十進位制48)。 3*2*2*2*2=48
6. >> 操作符(右移運算子)
「>>」是雙目運算子。右移n位就是除以2的n次方,其功能是把「>>」左邊的運算數的各二進位全部右移若干位,「>>」右邊的數指定移動的位數。
例: a<<4 指把a的各二進位向左移動4位。如a=00110000(十進位制3),左移4位後為00000011(十進位制48)。 48/2/2/2/2=3
二:&&與||
&&(邏輯與) 、 ||(邏輯或) :
作用:進行多項比較並將結果組合為單一的布林值。同時&&(邏輯與) 和 ||(邏輯或) 又是短路操作符,即左邊的表示式為假時,將不再執行右邊的表式。
規律: &&(邏輯與) ,全真才為真 ; ||(邏輯或),有真則為真。
&&(邏輯與):兩邊必須是boolean,只要左邊為假,右邊的就不會在繼續執行.
例如:9&&5=1,9||5=1,9&&0=0,9||0=1
c語言操作符 位操作符 移位操作符
1 按位操作符 1.1 按位 與 雙目運算子 僅當兩個運算元都為1時,結果為1,否則為0。參與運算的數以補碼方式出現。例 9 5 1 0000 1001 9的補碼 0000 0101 5的補碼 0000 0001 1的補碼 應用 a 通常將某些位清零或保留某些位。例如 將a的高八位清零,保留低八位,...
操作符使用
1.寫乙個函式返回引數二進位制中 1 的個數 比如 15 0000 1111 4 個 1 程式原型 int count one bits unsigned int value include include pragma warning disable 4996 方法一 int count one ...
c 過載操作符使用示例
1.overload.h 如下 ifndef overload h define overload h include class overload overload double x,double y overload operator const overload a overload oper...