Pythonのビット演算子について何を知っておく必要がありますか? 【例で説明】
公開: 2021-10-06コンピュータシステムは、データをビットと呼ばれる2進数のストリームとして表現、保存、および送信します。 「2進数」は、0と1の2つの可能な値のみが存在できることを意味し、そのような2進数はそれぞれ「ビット」と呼ばれます。 テキスト、10進数、画像、音声、またはビデオのいずれを使用する場合でも、コンピューターソフトウェアは、情報を0と1で構成されるバイナリコードに変換します。 しばしば機械語と呼ばれるバイナリ情報は、コンピュータシステムが保存する最も基本的なレベルの情報です。
Pythonのビット演算子を使用すると、最も基本的なレベルでデータの個々のビットを操作できます。 つまり、Pythonのビット演算子は、整数値のビット単位の計算を実行するために使用されます。 したがって、整数値は最初にバイナリ形式に変換され、次にビットごとの演算が実行されます。 「ビット演算」が実行された後、結果は10進形式で返されます。 Pythonのビット演算子は、整数でのみ機能します。 データサイエンスプログラムで自分自身をスキルアップすると、課題を克服するのに役立ちます。 テキストマイニングについてもっと話しましょう。
それでは、Pythonのビット演算子、タイプ、それらの動作、および例について詳しく見ていきましょう。
目次
Pythonのビット演算子
Pythonには、整数に対してビット単位の論理演算を実行するための6つの演算子が含まれています。
以下は、Pythonのさまざまなビット演算子と、その構文およびそれぞれの機能の説明です。
オペレーター
構文
説明
ビットごとのAND
a&b
オペランドの両方のビットが1の場合、演算子は1を返します。それ以外の場合は0を返します。
ビットごとのOR
a | b
オペランドのいずれかのビットが1の場合、演算子は1を返します。それ以外の場合は0を返します。
ビット単位ではありません
〜a
すべてのビットを反転することにより、指定された数値の論理否定を実行する単項ビット演算子。 算術的には、1から個々のビット値を引くことで表されます(〜ai = 1 –ai)。
ビット単位のXOR
a ^ b
ビットペアに反対のビット値が含まれている場合、演算子は1を返します。 それ以外の場合は0を返します。
ビット単位の左シフト
a <<
演算子は、第1オペランドのビットを、第2オペランドで定義された桁数だけ左にシフトします。 さらに、演算子は、新しいビットパターンの右側に形成されるギャップを埋めるのに十分な0を追加します。
ビット単位の右シフト
a >>
オペレーターは、指定された桁数だけビットを右にプッシュします。 したがって、右端のビットは常にドロップされます。
例を使用したPythonのビット演算子
各ビット演算子の基本的な説明を念頭に置いて、概念をさらに明確にするためにいくつかの例を見てみましょう。
1.ビットごとのAND(&)
両方のビットが1の場合は1を返します。それ以外の場合は0を返します。
例1
a = 24 = 11000(バイナリ)
b = 4 = 00100(バイナリ)
a&b = 11000
&
00100
= 00000
= 0(10進数)
例2
a = 10 = 1010(バイナリ)
b = 2 = 0010(バイナリ)
a&b = 1010
&
0010
= 0010
= 2(10進数)
2.ビットごとのOR(|)
いずれかのビットが1の場合は1を返し、それ以外の場合は0を返します。
例1
a = 67 = 1000011(バイナリ)
b = 54 = 0110110(バイナリ)
a | b = 1000011
|
0110110
= 1110111
= 119(10進数)
例2
a = 6 = 000110(バイナリ)
b = 34 = 100010(バイナリ)
a | b = 000110
|
100010
= 100110
= 38(10進数)
3.ビット単位のNOT(〜)
ビットの1の補数を返します(ビットを反転します)。
例1
a = 60 = 111100(バイナリ)
〜a =〜111100
= 000011
= 3(10進数)
例2
a = 33 = 100001(バイナリ)
〜a =〜100001
= 011110
= 30(10進数)
4.ビット単位のXOR(^)
両方のビットの値が反対の場合は1を返します。 それ以外の場合は0を返します。
例1
a = 61 = 0111101(バイナリ)
b = 90 = 1011010(バイナリ)
a ^ b = 0111101
^
1011010
= 1100111
= 103(10進数)
例2
a = 2 = 000010(バイナリ)
b = 55 = 110111(バイナリ)
a ^ b = 000010
^
110111
= 110101
= 53(10進数)
5.ビット単位の左シフト(<<)
ビットを左にシフトし、右側に形成されたギャップを0で埋めます。
例1
a = 39 = 100111(バイナリ)
a << 1 = 1001110 = 78(10進数)
a << 2 = 10011100 = 156(10進数)
a << 3 = 100111000 = 312(10進数)
例2
b = 74 = 1001010(バイナリ)
b << 1 = 10010100 = 148(10進数)
b << 2 = 100101000 = 296(10進数)
b << 3 = 1001010000 = 592(10進数)
6.ビット単位の右のたわごと(>>)
ビットを右にシフトし、左側に形成されたギャップを0で埋めます。
例1
a = 157 = 10011101(バイナリ)
a >> 1 = 1001110 = 78(10進数)
a >> 2 = 100111 = 39(10進数)
a >> 3 = 10011 = 19(10進数)
例2
b = 89 = 1011001(バイナリ)
b >> 1 = 101100 = 44(10進数)
b >> 2 = 010110 = 22(10進数)
b >> 3 = 001011 = 11(10進数)
Pythonのビット演算子(コードを使用した例)
以下は、Pythonのビット演算子を説明するための簡単なコードスニペットです。
1.ビット単位のAND、OR、NOT、およびXOR
ソース
ソース
2.ビット単位のシフト演算子
ソース
ソース
今後の方向性:データサイエンスにおけるupGradのプロフェッショナル認定プログラムでPythonスキルを習得する
あなたはコーディングの経験がほとんどない意欲的なビジネスマネージャーですか? その後、upGradは、ビジネスの意思決定のためのデータサイエンスのプロフェッショナル認定プログラムであなたをカバーしました。
データサイエンスのプロフェッショナル認定プログラムは、基礎的なデータサイエンスのスキルと実践的な知識を開発したいマネージャーや働く専門家のために特別に設計されています。 厳格な8か月のオンラインプログラムは、データサイエンスの問題、アルゴリズム、および重要なビジネス上の意思決定を行うためにデータを提示する方法に焦点を当てています。 カリキュラムは次のコースをカバーしています。
- 事前プログラム準備コンテンツ
- ビジネス上の問題解決、洞察、ストーリーテリング
- 統計と機械学習
- ストラテジー
- キャップストーンプロジェクト
- Pythonの概要(オプションモジュール)
プログラムの主なハイライトは次のとおりです。
- IIMカリカットからの世界的に認められた認証
- 200時間以上のコンテンツ、20回以上のライブ学習セッション、5回以上のエキスパートコーチングセッション
- 3つの業界プロジェクトと絶頂
- Excel、Python、Tableau、R、およびPowerBIの包括的なカバレッジ
- 360度のキャリアサポート
- 業界のメンターと1対1
- トップ企業との雇用支援
- 業界ネットワーキングの機会
結論
Pythonは、強力で用途が広く、使いやすいプログラミング言語であり、専門家にも初心者にも人気があります。 その上、Pythonは、その純粋な効率、汎用性、信頼性、および速度により、依然として開発者の間で選択されているプログラミング言語です。 パフォーマンスを大幅に低下させることなく、ほぼすべての種類の環境とプラットフォームで使用できます。 さらに、Pythonは、多くの組織にわたるデータ処理ワークロードの大部分を強化します。 Pythonが提供するデータ分析の容易さは、機械学習プロジェクトを含む多くのアプリケーションに役立ちます。
Pythonは、データサイエンスの基本的な側面を形成するため、重要なビジネスプロセスに取り組むのに間違いなく便利です。 さらに、ビッグデータが拡大し、ますます多くの企業がデータ主導の意思決定に焦点を当てるにつれて、Pythonの重要性を損なうことはできません。 したがって、Pythonを習得し、データ駆動型のビジネスシナリオにスキルを適用したい場合は、 upGradにサインアップして、業界最高の企業から学びましょう。
ビット演算子は何に使用されますか?
Pythonのビット演算子は、整数値のビット単位の計算を実行するために使用されます。 このため、整数は最初に2進数に変換され、次にさまざまな操作がビットごとに実行され、結果が10進数形式で返されます。 Pythonでは、ビット演算子は整数でのみ使用できます。
ビット演算子は高速ですか?
単純で低コストのプロセッサでは、ビット演算子は通常、除算、乗算よりも高速であり、多くの場合、加算よりも大幅に高速です。 一般に、ビット演算子は使用するリソースが少ないため、使用する電力が大幅に少なくなります。
Pythonでの論理演算子の使用は何ですか?
Pythonには、値の比較を可能にする3つの論理演算子があります。 3つの論理演算子AND、OR、およびNOTは、式をブール値に評価し、演算子の結果に基づいてTrueまたはFalseを返します。 以下に、Pythonの3つの論理演算子を示します。
1. AND(aおよびb):両方の式が真の場合は真
2. OR(aまたはb):少なくとも1つの式が真の場合は真
3. NOT(not a):式がfalseの場合にのみtrue