當前位置:首頁 » 編程語言 » python中的位運算

python中的位運算

發布時間: 2023-01-15 16:09:59

python之運算符匯總

1.算數運算符

假設 a= 10, b = 20

2.比較運算符

相關推薦:《Python視頻教程》

3.賦值運算符

4.邏輯運算符

邏輯運算的順序排列:從左往右開始執行

() > not > and > or

and or 一真一假

都為真: 取後面的 取前面的 取假的

都為假: 取前面的 去後面的 取真的

not True: False

not False: True

5.成員運算符

in -- 存在

not in -- 不存在

㈡ Day3_進制字元串位運算

計算機在存儲數據時候都是以二進制的形式去存的
十進制、十六進制、八進制、二進制

基數:0,1,2,3,4,5,6,7,8,9
進位;鋒十進一
每一位的值:123 = 1 100 + 2 10 + 3*1

基數:0,1
所有的二進制數都是由0和1組成
進位:逢二進一
每一位的值:11011 = 1 2^0+1 2 1+0*2 2+1 2^3+1 2^4 = 27

基數:0,1,2,3,4,5,6,7
進位:逢8進1
每一位的值:111 = 1 8^0+1 8 1+1*8 2 = 73

基數:0-9,a-f(A-F) a,b,c,d,e,f
進位:逢16進1
每一位的數:111 = 1 16^0+1 16 1+1*16 2 =273

5.進制之間的轉換

python支持通過二進制、八進制、十進制和十六進制的形式來直接表示整數

oct(整數)--> 將括弧中的整數,轉換成八進制形式

hex(整數)--> 將括弧中的整數,轉換成十六進制形式

計算機在存數字的時候,存的是數字的二進制的補碼
計算機內存的最小單位是位,1位只是存儲兩個狀態
8位 = 1位元組

十進制的10的原碼就是:1010
最高位是符號位,如果正數符號位為0,負數符號位為1
10的原碼 00000000 00001010
-10的原碼 10000000 00001010

正數的反碼是它的原碼
負數的反碼就是這個數的原碼符號位不變的,然後其他位置上的數字取反
10 -> (原碼)10000000 00001010 ——>(反碼)11111111 11110101

正數的補碼就是它的原碼
負數的補碼是它的反碼加1
-10 -> (反碼)11111111 11110101 -> (補碼)11111111 11110110

總結:正的反碼和補碼都是原碼;負數的補碼是反碼加1,反碼就是原碼符號位不變,其他位取反
為什麼計算機存儲數據的時候存補碼?:因為計算機中只有加法器,只能進行加操作
存原碼對負數進行加操作的時候有問題

計算機存數字存補碼,計算的時候也是補碼,最後結果看的時候看原碼
位運算符:&(按位與),|(按位或), ^(異或), ~(取反),>>(右移), <<(左移)

數字1 & 數字2 :二進制的每一位,兩個都為1結果才是1,否則為0

作用:讓指定位上數置零,或者保留夢一位上的值

數字1 | 數字2:只要有一個為1,結果就是1;兩個都為0,結果才是0
-3 | 2--> 11111101 | 00000010 == 11111111(補碼) == 100000001(原碼)

數字1 ^ 數字2:不同為1,相同為0
-3 ^ 2--> 11111101 ^ 00000010 == 11111111(補碼) == 100000001(原碼)

~數字: 將每一位取反

數字 << 位數 :將補碼移動指定位數,後面用零補齊

左移特點 : 結果 == 數字 2^位數 m << n == m (2^n)

num * 2 == num << 1 num * 4 == num << 2

數字 >> 位數:將補碼向右移動指定的位數,符號位不變,在符號位的後面補指定個數的0(正)或者1(負)
規律(只適用於正數): m >> n == m // (2^n)

python中通過單引號或者雙引號引起來的字元集就是字元串
字元串中引號中的字元集,就是由各種不同的字元來組成

python中字元串中字元採用的是Unicode編碼
Unicode編碼,是通過兩個位元組來對一個字元進行編碼。0 ~ 2^16-1
幾乎包含了世界上所有字元
ASSCII編碼:是通過一個位元組對一個字元編碼
Unicode編碼包含ASSCII編碼表
chr(數字):獲取數字在Unicode編碼表中對應的字元,返回的是只有一個字元的字元串

可以直接在字元串中寫字元對應的編碼值,格式:u十六進制編碼

一些特殊功能或者具有特殊意義的字元,直接放在字元串的引號中無效,需要通過來轉移
---> 換行
'--->'
---> 製表符(四個空格)
--->
"--->"

㈢ python中 b1=m|n^p是什麼意思

這是位運算的結果吧。

雖然我對python中的位運算理解的不深刻,但這應該就是位運算並且賦值給b1.你可以查看與位運算相關的資料。

㈣ 轉《python 位操作符 左移和右移 運算》

左移和右移N位等同於無溢出檢查的2的N次冪運算:2**N

運算規則:

按二進制形式把所有的數字向左移動對應的位數,高位移出(舍棄),低位的空位補零。

語法格式:

需要移位的數字<<移位的位數

例如:3<<2則是將數字3左移動2位

計算過程:

3<<2首先把3轉換為二進制數字

然後把該數字高位(左側)的兩個零移出,其他的數字都朝左平移2位,最後在低位(右側)

的連個空位補零。則得到的結果是,

則轉換為十進制是12

運算規則:

按二進制形式把所有的數字向右移動對應的位數,低位移出(舍棄),高位的空位補符號位

即正數補0,負數補1

語法規則:

需要移位的數字>>移位的次數

例如:11>>2則是將數字11右移2位

計算過程:

11的二進制形式為:然後把低位的最

後兩個數字移出,因為該數字是正數,所以在高位補0,則得到的最終的二進制結果為:

轉換為十進制數為3

轉自 https://blog.51cto.com/wangyan112/1320143 。

㈤ python中「>>=」和「<<=」符號是什麼意思

>> 和 <<都是位運算,對二進制數進行移位操作。
<< 是左移,末位補0,類比十進制數在末尾添0相當於原數乘以10,x<<1是將x的二進製表示左移一位,相當於原數x乘2。比如整數4在二進制下是100,4<<1左移1位變成1000(二進制),結果是8。
>>是右移,右移1位相當於除以2。
而>>=和<<=,就是對變數進行位運算移位之後的結果再賦值給原來的變數,可以類比賦值運算符+=和-=可以理解。
比如x>>=2, 就是把變數x右移2位,再保留x操作後的值。

㈥ Python運算符優先順序規則有哪些

以下運算符優先順序順序依次遞增:

Lambda#運算優先順序最低
邏輯運算符:or
邏輯運算符:and
邏輯運算符:not
成員測試:in,notin
同一性測試:is,isnot
比較:<,<=,>,>=,!=,==
按位或:|
按位異或:^
按位與:&
移位:<<,>>
加法與減法:+,-
乘法、除法與取余:*,/,%
正負號:+x,-x

㈦ python 位操作 取反問題

python 3的整型以16bit遞增。

0xf0 =0b 0000 0000 1111 0000

~0xf0之後得到1111 11110000 1111

[1][111 11110000 1111]

確定是負數,有負數等於絕對值反碼加一。求補碼形式。

絕對值減1得:111 11110000 1110

反碼得:000 0000 1111 0001

得-0xf1即-241(你那的~a[0]得-241)


要求得到[0,256),限定一下范圍即可。

>>>(~a[0])&0xff
15

㈧ python中常用的運算符

python常見的運算符
1.算數運算符
算術運算符用於執行加減乘除、取余等基本數學運算,其中為了方便輸入用斜杠"/"表示除號。和其它編程語言中兩個整數相除結果為整數不同,Python中兩個整數相除結果為小數,如果需要獲取整除結果則需要使用兩個斜杠"//"。Python中用兩個「*」號表示求冪,例如 2**3=8,3**2=9。

①+ 名稱:加

可用於對數字,序列等數據操作 。對於數字進行求和;其他的是連接

②- 名稱 :減 只是求差

③* 名稱:乘法

可用於數字、序列等數據進行操作;數字是求積;其他類型進行連續性的操作

④/ 名稱:除法 求商

⑤% 名稱:取余 求兩個數字除法運算的余數

⑥** 名稱:冪 求a的b次冪

⑦// 名稱:地板除法 求商取整

2.關系運算符
關系運算符用於比較兩個操作數之間的大小關系,返回值為True或False。

① == 名稱:等於 ② != 不等於 ③ > 大於 ④ < 小於 ⑤ <= 小於等於 ⑥ >= 大於等於

注意:1. 一個=表示賦值,兩個==表示判斷兩個對象是否相等

2.關系運算符可以連用

3.邏輯運算符
邏輯運算符用於判斷多個條件是否滿足某一要求。與其他編程語言不同的是:Python中用 not 表示邏輯非,and 表示邏輯與, or 表示邏輯或。

① and 名稱:邏輯與 只有當and兩邊的之都為 True時,結果為True,否則結果均為False

② or 名稱:邏輯或 只有當or兩邊的之都為False時,結果為False,否則結果均為True

③not 名稱:邏輯非 結果與原來的結果相反,總是。

注意:邏輯與和了邏輯或在進行求解期間 ,總是從左到右一次執行 ,如果在某一步可以確定結果,那麼將不在執行後面的表達式。

4.賦值運算符
運算符 += -= *= /= %= **= //= &= |= ^= <<= >>=
名稱 加賦值 減賦值 乘賦值 除賦值 取余賦值 冪賦值 地板除法賦值 位與賦值 位或賦值 位異或賦值 左移賦值 右移賦值
例子 a +=b a -= b a *= b a /= b a %= b a **= b a //= b a &= b a |= b a ^= b a <<= b a >>= b
說明 a = a + b a = a - b a = a * b a = a / b a = a % b a = a ** b a = a // b a = a & b a =a | b a = a ^ b a = a << b a = a >> b

5.身份運算符
in 例子:x in y 表示y中是否含有x,如果有則返回True,沒有責則返回False

not in 例子: x not in y 表示y中是否含有,沒有返回位True,有返回False

㈨ 我想問下python中 邏輯與:「&」和「and」的區別

1、「&」和「and」有本質區別,屬於不同類型的運行符號。& 是位運算;and 是邏輯運算。

2、首先是&:該運輸符屬於字元串的連接運算符,例如,「w「&」c「結果為字元串」wc「。

3、and屬於邏輯運算符,表示邏輯與運算,其規則是有假取假,全真為真。例如,true and false結果為false,true and true結果為true。

(9)python中的位運算擴展閱讀

Python的設計哲學是「優雅」、「明確」、「簡單」。因此,Perl語言中「總是有多種方法來做同一件事」的理念在Python開發者中通常是難以忍受的。Python開發者的哲學是「用一種方法,最好是只有一種方法來做一件事」。

在設計Python語言時,如果面臨多種選擇,Python開發者一般會拒絕花俏的語法,而選擇明確的沒有或者很少有歧義的語法。

由於這種設計觀念的差異,Python源代碼通常被認為比Perl具備更好的可讀性,並且能夠支撐大規模的軟體開發。這些准則被稱為Python格言。在Python解釋器內運行import this可以獲得完整的列表。

Python開發人員盡量避開不成熟或者不重要的優化。一些針對非重要部位的加快運行速度的補丁通常不會被合並到Python內。所以很多人認為Python很慢。

不過,根據二八定律,大多數程序對速度要求不高。在某些對運行速度要求很高的情況,Python設計師傾向於使用JIT技術,或者用使用C/C++語言改寫這部分程序。可用的JIT技術是PyPy。

Python是完全面向對象的語言。函數、模塊、數字、字元串都是對象。並且完全支持繼承、重載、派生、多繼承,有益於增強源代碼的復用性。

Python支持重載運算符和動態類型。相對於Lisp這種傳統的函數式編程語言,Python對函數式設計只提供了有限的支持。有兩個標准庫(functools, itertools)提供了Haskell和Standard ML中久經考驗的函數式程序設計工具。

雖然Python可能被粗略地分類為「腳本語言」(script language),但實際上一些大規模軟體開發計劃例如Zope、Mnet及BitTorrent,Google也廣泛地使用它。

Python的支持者較喜歡稱它為一種高級動態編程語言,原因是「腳本語言」泛指僅作簡單程序設計任務的語言,如shellscript、VBScript等只能處理簡單任務的編程語言,並不能與Python相提並論。

Python本身被設計為可擴充的。並非所有的特性和功能都集成到語言核心。Python提供了豐富的API和工具,以便程序員能夠輕松地使用C語言、C++、Cython來編寫擴充模塊。Python編譯器本身也可以被集成到其它需要腳本語言的程序內。

因此,很多人還把Python作為一種「膠水語言」(glue language)使用。使用Python將其他語言編寫的程序進行集成和封裝。在Google內部的很多項目,例如Google Engine使用C++編寫性能要求極高的部分,然後用Python或Java/Go調用相應的模塊。

《Python技術手冊》的作者馬特利(Alex Martelli)說:「這很難講,不過,2004 年,Python 已在Google內部使用,Google 召募許多 Python 高手,但在這之前就已決定使用Python,

他們的目的是 Python where we can, C++ where we must,在操控硬體的場合使用 C++,在快速開發時候使用 Python。」

熱點內容
linux的安裝目錄在哪 發布:2025-07-15 19:10:04 瀏覽:723
2008編程入門經典 發布:2025-07-15 18:58:44 瀏覽:602
艾派密碼是什麼 發布:2025-07-15 18:47:40 瀏覽:587
密碼鎖如何在裡面開門 發布:2025-07-15 18:35:00 瀏覽:520
額溫演算法 發布:2025-07-15 18:18:14 瀏覽:727
ie客戶端事件腳本執行異常 發布:2025-07-15 18:10:13 瀏覽:25
自製壓縮兔糧 發布:2025-07-15 18:09:25 瀏覽:11
腳本病毒的危害 發布:2025-07-15 18:04:00 瀏覽:259
簡單的解壓 發布:2025-07-15 17:42:25 瀏覽:148
lol最強腳本 發布:2025-07-15 17:41:45 瀏覽:290