Pythonビット演算子
ビット演算子はビットを処理し、ビットごとの演算を実行します。 a=60の場合を想定します。およびb=13;これで、バイナリ形式では、それらの値はそれぞれ00111100と00001101になります。次の表に、Python言語でサポートされているビット演算子と、それぞれの例を示します。上記の2つの変数(aとb)をオペランドとして使用します-
a = 0011 1100 b = 0000 1101 ----------------- a&b = 0000 1100 a|b = 0011 1101 a^b = 0011 0001 ~a = 1100 0011
Python言語でサポートされている次のビット演算子があります。
Sr.No | オペレーターと説明 | 例 |
---|---|---|
1 | &バイナリAND 演算子が両方のオペランドに存在する場合、結果にビットをコピーします | (a&b)(0000 1100を意味します) |
2 | |バイナリOR いずれかのオペランドに存在する場合は、ビットをコピーします。 | (a | b)=61(0011 1101を意味します) |
3 | ^バイナリXOR 両方ではなく一方のオペランドに設定されている場合、ビットをコピーします。 | (a ^ b)=49(0011 0001を意味します) |
4 | 〜バイナリの1の補数 これは単項であり、ビットを「反転」させる効果があります。 | (〜a)=-61(2の補数形式の1100 0011を意味します。これは、符号付きの2進数によるものです。 |
5 | <<バイナリ左シフト 左のオペランドの値は、右のオペランドで指定されたビット数だけ左に移動します。 | a <<2 =240(1111 0000を意味します) |
6 | >>バイナリ右シフト 左のオペランドの値は、右のオペランドで指定されたビット数だけ右に移動します。 | a>> 2 =15(0000 1111を意味します) |
7 | **=指数および 演算子に対して指数(累乗)計算を実行し、左側のオペランドに値を割り当てます | c **=aはc=c ** a | と同等です
8 | //=フロア分割 演算子のフロア分割を実行し、左側のオペランドに値を割り当てます | c //=aはc=c // a | と同等です
例
#!/usr/bin/python a = 60 # 60 = 0011 1100 b = 13 # 13 = 0000 1101 c = 0 c = a & b; # 12 = 0000 1100 print "Line 1 - Value of c is ", c c = a | b; # 61 = 0011 1101 print "Line 2 - Value of c is ", c c = a ^ b; # 49 = 0011 0001 print "Line 3 - Value of c is ", c c = ~a; # -61 = 1100 0011 print "Line 4 - Value of c is ", c c = a << 2; # 240 = 1111 0000 print "Line 5 - Value of c is ", c c = a >> 2; # 15 = 0000 1111 print "Line 6 - Value of c is ", c
出力
上記のプログラムを実行すると、次の結果が生成されます-
Line 1 - Value of c is 12 Line 2 - Value of c is 61 Line 3 - Value of c is 49 Line 4 - Value of c is -61 Line 5 - Value of c is 240 Line 6 - Value of c is 15>
-
Pythonでの比較演算子の連鎖
1つのステートメントで複数の条件チェックを使用する必要がある場合があります。この種のチェックには、x
-
Pythonのさまざまなビット演算子タイプは何ですか?
ビット演算子は、オペランドとしてビットを操作します。次のビット演算子はPythonで定義されています- &(ビットごとのAND):両方のビットオペランドが1の場合は1を返します | (ビットごとのOR):2つのビットオペランドの1つが1であっても、1を返します ^(ビット単位のXOR):一方のオペランドが1で、もう一方が0の場合にのみ1を返します 〜(ビット単位の補数):オペランドが0の場合は1を返し、その逆の場合は1を返します <<(ビット単位の左シフト):ビットは左にシフトされ、右端のほとんどのビットは0に設定されます (ビット単位の右シフト):ビットは右にシフトされ、左端のほとん