python中的位運算是程式設計中對位模式或二進位制的一元和二元操作。
按位運算就是把數字轉換為機器語言---以二進位制形式表示
python中的位運算有哪些?
在python中,按位運算子有左移運算子(<>)、按位與運算(&)、按位或運算(|)、按位取反運算(~)、異或運算子,其中按位取反運算子為單目運算子
按位左移運算子(<
在機器語言中,任何形式均以二進位制的形式進行表示:
舉例:7<<2
二進位制為:111 左移兩位:11100 最後結果為:28
按位右移運算子(>>)
具體的使用形式和左移一樣。
舉例:7>>2
28>>2
二進位制:7的二進位制為:111,右移兩位後為001,結果即為1
28的二進位制為:11100,右移兩位後為00111,結果為7
按位與運算(&)
正數和正數的與運算:
舉例: 7&9
二進位制:7的二進位制為:0111,9的二進位制為:1001
說明:根據(1&1=1、1&0=0、0&1=0、0&0=0)即*相同位置同為1結果即為1,否者為0*,由此可見7&9的二進位制形式為:0111&1001 == 0001
正數與負數的與運算:
舉例:-7&5
二進位制:-7:1001,5:0101。結果為1
說明:此處你可能要問-7的二進位制和9的二進位制不是相同嗎?答案是不相同,在機器中-7的二進位制為:11111111 11111111 11111111 11111001,9的二進位制為:00000000 00000000 00000000 00001001。同樣根據上文的同為1既為1,所以結果為1。運算最後結果的二進位制形式從最左側的第乙個0前的1開始,直至右側結尾,將此數轉換為10進製,重點是,此處不是依次相加,而是依次相減,得到的結果最後加上負號即為最後運算的結果。
負數與負數的與運算:
舉例:-5&-8
二進位制:-5:11111011,-8:11111000結果為-8
說明:你可能會很疑惑,此處的結果明明是11111000,結果怎麼是-8.原因是-5&-8的二進位制形式為:11111011&11111000 == 11111000,從最左側的第乙個0前的1開始,直至右側結尾,將此數轉換為10進製,重點是,此處不是依次相加,而是依次相減,得到的結果最後加上負號即為最後運算的結果。
按位或運算(|)
或運算和與運算十分相似,只是依據的邏輯運算不同,或運算的依據邏輯是*相同位置有個為1結果即為1*
正數與正數的或運算:
舉例:7|9
二進位制:7:0111,9:1001
說明:根據(1|0=1、1|1=1、0|1=1、0|0=0)可知,7|9的二進位制形式為:0111|1001,結果為:15
負數與正數的或運算:
舉例:-7|9
二進位制:-7:11111001,9:00001001
說明:從最左側的第乙個0前的1開始的數,轉化為十進位制,需要進行的是依次相減運算。
負數與負數的或運算:
舉例:-5|-8
二進位制:-5:11111011,-8:11111000結果為-5
說明:運算最後結果的二進位制形式從最左側的第乙個0前的1開始,直至右側結尾,將此數轉換為10進製,重點是,此處不是依次相加,而是依次相減,得到的結果最後加上負號即為最後運算的結果。
按位取反運算子(~)
將二進位制數+1之後乘以-1,假如x的二進位制數是y,x的按位翻轉是-(y+1)
舉例:-3
去反後:2
二進位制:-3:11111101 取反操作:-(11111101+1)==-(11111110)==2
異或運算子(^)
二進位制對應位相加,不進製。依據邏輯為:(1^1=0、1^0=1、0^1=1、0^0=0),同樣依照,如果兩個數中一正一負,則最後的二進位制轉十進位制時依次相減,如果同正同負,則相加
正數和正數的異或運算:
舉例:7^9
二進位制:7:0111,9:1001
說明:7^9的二進位制形式為:0111^1001 == 1110,十進位制為:14
負數和正數的異或運算:
舉例:-3^4
二進位制:-3:11111101,4:00000100
說明:-3^4的二進位制形式為:11111101^00000100 == 11111001,根據說明可以知道結果為-(2*2*2-1)=-7
負數和負數的異或運算:
舉例:-7^-9
二進位制:-7:11111001,-9:11110111
說明;-7^-9的二進位制形式為:11111001^11110111 == 00001110,根據說明可以知道結果為2*2*2+2*2+2=14
python單目運算 Python基礎
變數 python的變數不能以數字開頭 python為動態語言 python為大小寫敏感語言 運算and 與 or 或 not 非 單目運算 除 地板除 只保留整數部分 特殊的值 none 空值 true 真 false 假 i o變數 input 提示字串 print 變數1,變數2 字串可用單引...
在類中重置 , (單目運算)
在類中重置 單目運算 在類中進行單目 與 例如a 用point這個類來做例子。include using namespace std class point point point point point int x,int y point point operator point point op...
Python 三目運算
python 可通過 if 語句來實現三目運算的功能,因此可以近似地把這種 if 語句當成三目運算子。作為三目運算子的 if 語句的語法格式如下 true statements if expression else false statements 三目運算的規則是 先對邏輯表示式 expressi...