Python語言中的按位運算

2021-09-12 11:36:06 字數 776 閱讀 2603

位操作是程式設計中對位模式或二進位制數的一元和二元操作. 在許多古老的微處理器上, 位運算比加減運算略快, 通常位運算比乘除法運算要快很多. 在現代架構中, 情況並非如此:位運算的運算速度通常與加法運算相同(仍然快於乘法運算).

簡單來說,按位運算就把數字轉換為機器語言——二進位制的數字來運算的一種運算形式。在計算機系統中,數值一律用補碼來表示(儲存)。

python中的按位運算子有:左移運算子(<<),右移運算子(>>),按位與(&),按位或(|),按位翻轉(~)。這些運算子中只有按位翻轉運算子是單目運算子,其他的都是雙目運算子。

小技巧:利用按位與可以將任意二進位制數的最後一位變為0,即就是x&0.

4|7解法:按位並的計算規律和按位與的很相似,只不過換了邏輯運算子,並的規律是: 1|1=1 ,1 |0=1, 0|0=0. 4|7轉換位二進位制就是:100|111=111. 二進位制111即為十進位制的7.

小技巧:利用按位並可以將任意二進位制數的最後一位變為1,即就是x|1.

2^5解法:10^101=111,二進位制111得到十進位制的結果是7.

1^1解法:1+1=0.(本來二進位制1+1=10,但不能進製,所以結果是0)

-3^4

解法: -3的補碼是11111101,4的補碼是100 (也即00000100),11111101^00000100=11111101,補碼 11111101轉為原碼是1000111,即十進位制的-7.

3>>2

解法:11向右移動兩位變為0.

10>>1

解法:10的二進位制是1010,向右邊移動一位是101,即5.

Python語言中的按位運算

本作品採用知識共享署名 非商業性使用 相同方式共享 2.5 中國大陸許可協議進行許可。位操作是程式設計 中對位模式 或二進位制數 的一元和二元操作.在許多古老的微處理器 上,位運算比加減運算略快,通常位運算比乘除法運算要快很多.在現代架構中,情況並非如此 位運算的運算速度通常與加法運算相同 仍然快於...

Python語言中的按位運算

位操作是 程式設計 中對位模式 或二進位制數 的一元和二元操作.在許多古老的 微處理器 上,位運算比加減運算略快,通常位運算比乘除法運算要快很多.在現代 架構中,情況並非如此 位運算的運算速度通常與加法運算相同 仍然快於乘法運算 簡單來說,按位運算就把數字轉換為機器語言 二進位制的數字來運算的一種運...

python按位符 Python語言中的按位運算子

按位運算子是把數字看作二進位制來進行計算的。python中的按位運算法則如下 按位與 bitwise and of x and y 舉例 5 3 1 解釋 101 11 相同位僅為個位1 故結果為 1 按位或 bitwise or of x and y 舉例 5 3 7 解釋 101 11 出現1的...