python中位演算子-python学習ノート
5170 ワード
python中位演算子
まず注意しなければならないのは、ビット演算子は数字をバイナリと見なして計算するものであり、すなわち、ビット演算を行う場合、数字はバイナリに変換して演算しなければならない.次に、実際の例を挙げると、次の表の変数aは60、bは13であり、バイナリフォーマットは以下の通りである.
ビット演算子
説明
≪インスタンス|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での実行例を次に示します
対応する結果は
皆さんのお役に立てばと思いますが、何か質問があれば直接コメントすればいいのですが、詳しくなければ、すぐに返事します.
まず注意しなければならないのは、ビット演算子は数字をバイナリと見なして計算するものであり、すなわち、ビット演算を行う場合、数字はバイナリに変換して演算しなければならない.次に、実際の例を挙げると、次の表の変数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
皆さんのお役に立てばと思いますが、何か質問があれば直接コメントすればいいのですが、詳しくなければ、すぐに返事します.