python中位演算子-python学習ノート

5170 ワード

python中位演算子
まず注意しなければならないのは、ビット演算子は数字をバイナリと見なして計算するものであり、すなわち、ビット演算を行う場合、数字はバイナリに変換して演算しなければならない.次に、実際の例を挙げると、次の表の変数aは60、bは13であり、バイナリフォーマットは以下の通りである.
##       a   60,b   13,       :
a = 0011 1100
b = 0000 1101

-----------

a & b = 0000 1100

a | b = 0011 1101

a ^ b = 0011 0001

~ a  = 1100 0011

ビット演算子
説明
≪インスタンス|Instance|emdw≫
&
≪ビット別演算子|By Position and Operator|oem_src≫:演算に関与する2つの値.両方の対応するビットが1の場合、そのビットの結果は1、それ以外の場合は0です.
(a&b)出力結果12,バイナリ解釈:0000 1100
|
ビット単位または演算子:対応する2つのバイナリビットの1つが1の場合、結果ビットは1になります.
(a|b)出力結果61,バイナリ解釈:0011 1101
^
ビット別または演算子:2つの対応するバイナリが異なる場合、結果は1になります.
(a^b)出力結果49,バイナリ解釈:0011 0001
~
ビットごとに逆演算子をとる:データの各バイナリビットごとに逆をとる,すなわち1を0にし,0を1にする.xは-x-1に類似
(~a)出力結果−61,バイナリ解釈:1100,001,シンボルバイナリ数の符号化形式である.
<<
左移動演算子:演算数の各バイナリはすべて数ビット左にシフトし、<<右の数字で移動するビット数を指定し、高位破棄、低位補0.
a<<2出力結果240、バイナリ解釈:1111 0000
>>
右移動演算子:">>"左の演算数の各バイナリをすべて右にいくつかのビットを移動し、>>右の数字は移動するビット数を指定します
a>>2出力結果15,バイナリ解釈:0000 1111
pythonでの実行例を次に示します
#!/usr/bin/python
# -*- coding: UTF-8 -*-

a = 60  # 60 = 0011 1100       
b = 13  # 13 = 0000 1101
c = 0

c = a & b  # 12 = 0000 1100
print("1. c    :", c)

c = a | b  # 61 = 0011 1101
print("2. c    :", c)

c = a ^ b  # 49 = 0011 0001
print("3. c    :", c)

c = ~a  # -61 = 1100 0011
print("4. c    :", c)

c = a << 2  # 240 = 1111 0000
print("5. c    :", c)

c = a >> 2  # 15 = 0000 1111
print("6. c    :", c)

対応する結果は
1. c    : 12
2. c    : 61
3. c    : 49
4. c    : -61
5. c    : 240
6. c    : 15

皆さんのお役に立てばと思いますが、何か質問があれば直接コメントすればいいのですが、詳しくなければ、すぐに返事します.