ホームページ  >  記事  >  バックエンド開発  >  Python での 10 進数のビット単位の演算と計算の概要

Python での 10 進数のビット単位の演算と計算の概要

高洛峰
高洛峰オリジナル
2017-03-01 14:14:251295ブラウズ

AND 演算&

例:
3&5解決策: 3 の 2 の補数は 11、5 は 101、3&5 は 011&101、まず 100 の位を確認します (実際には 100 の位ではありません。理解を容易にするためです)。 0 が 1 つと 1 が 1 つあります。(1&1=1, 1&0=0, 0&0=0, 0&1=0) によれば、百の位は 1 でなければならないことがわかります。同様に、十の位の数は 1&0=0 であり、一の位の数字は 1&1=1 なので、最終結果は 1 になります。 (この後に 1 つのステップがあるはずです。なぜなら、今得ている値は探している答えの補数にすぎないからですが、ただし、次の例では最後のステップを省略できません。
-1&-2
解決策: -1 の補数は 11111111、-2 の補数は 11111110、 11111111&11111110 の結果は次のとおりです。 11111110、これは補数であり、ビットを変換します。 元のコードは 100000010 です (負の数を元のコードに変換する方法は、1 を引いて否定することです)。10 進数への最終変換は - 2.
-2&6
解決策: -2 の補数は 11111110、6 の補数は 110、11111110&110、つまり 11111110&00000110 (これを書く目的は、初心者がビット単位の演算をよりよく理解できるようにすることです)。上記の方法に従えば、110 となります。10 進数に変換すると、6 になります。
ヒント: 任意の 2 進数を変換するには、ビットごとの AND を使用します。数値の最後の桁は 0 になります。

a = 5
b = 3

print a & b

結果: 0001

AND 演算は、a と b の 2 進数を比較することです。数字が両方とも 1 の場合は 1 としてカウントされます。そうでない場合、または両方が 0 の場合は、次のようになります。 0としてカウントされます。次に、答えを 2 進数から 10 進数に変換します。

OR 演算|

例:

4|7

解決策: ビット単位の和集合の計算規則は、論理演算子が変更され、和集合の規則が 1|1 であることを除いて、ビット単位の AND の計算規則と非常によく似ています。 =1, 1 |0=1, 0|0=0。4|7 のバイナリ変換は、100|111=111 です。

ヒント: ビットごとに使用すると、最後の桁を変換できます。任意の 2 進数 ビットは 1 になります。つまり、どの桁も 0 でない場合は 1 としてカウントされ、それ以外の場合は 0 としてカウントされます。


XOR演算

方法: ビット加算、桁上げしないことに特別な注意を払う必要があります
例:
2^5
解決策: 10^101=111、2進数111の10進数の結果は7です。
1^ 1
解: 1+1=0 (本来は2進数の1+1=10ですが、繰り上がりが許されないので結果は0になります)
-3^4
解: -3の補数は11111101、4の補数は100です。 (つまり、00000100)、11111101^00000100=11111101、補数コード 11111101 を元のコードに変換すると、10 進数で -7 となる 1000111 になります。

# a 的 b 的二进制
# 0*2**3 + 1*2**2 + 0*2**1 + 1*2**0
# 开始与运算
a = 0101
b = 0011


結果: 6

りー


a ^ b 結果は0110です

XOR演算の桁数が同じでない場合は1としてカウントし、そうでない場合は0としてカウントします。


左シフトと右シフト
1. 左シフト演算子 2561528e5ab71d2934ab5666fe9c79fc>

メソッド: X>>N 数値に対応する 2 進数を右に N ビット移動します。
例:

3>>2

解決策: 11 を右に 2 桁移動して 0 になります。

10>>1

解決策: 10 の 2 進数は 1010 で、右に 1 桁移動すると 101 になります。つまり、5.


a = 5
b = 3

print a | b

結果は 20 です


a = 0101
b = 0011


a < ディスプレイスメント演算は 2 進数を左または右に移動します。上に示すように、左に移動します。 2単位を取得しました。


Python における 10 進数のビット単位の演算と計算の概要に関連するその他の記事については、PHP 中国語 Web サイトに注目してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。