論理演算子and
とor
とビットごとのアナログの相違点&
,を使用していますか?さまざまなソリューションの効率に違いはありますか?論理とビットの比較
4
A
答えて
7
論理演算子は論理値で動作し、ビット演算子は整数ビットで動作します。パフォーマンスについて考えるのをやめ、それが意味するところで使用してください。
if x and y: # logical operation
...
z = z & 0xFF # bitwise operation
-2
論理演算子はこれらです:
& |^~
彼らが許可:
(true || false) // evaluates to true
(!true) // evaluates to false
ビット演算子はこれらです:彼らはあなたが例えば論理値を操作できるよう
&& || == !
あなたはbiで操作するこのような進ビット、:true
あなたは1と0以外の(バイナリ)番号を使用している場合は1とfalse
が0に等しい等しいので、
~011 = 100
0101 & 0011 = 0001
1
論理演算子は、ブール値のために使用され、ゼロではありません、その後、任意の数になります1。
例:int x = 5;
(バイナリで101)int y = 0;
(2進数で0)この場合、x && y
は0
を出力します.101は1に変更され、0は0に保たれました。これはtrue && false
と同じで、false
(0)となる。
一方、ビット単位の演算子は、2つのオペランドのすべての単一ビットに対して演算を実行します(したがって、ビット単位の演算)。
例:int x = 5; int y = 8;
印刷x | y
(ビット単位OR)これを計算するであろう:0101
(5)| 1000
(8)
----------- = 1011
(11)
が11
を印刷するであろう意味。
関連する問題
- 1. ビューの論理比較
- 2. 比較ソート - 理論的
- 3. if文、論理AND、比較
- 4. Julia:配列との論理比較
- 5. C++:条件文との論理比較?
- 6. YIIでの論理比較findAll()
- 7. カードの論理を比較する
- 8. Python:pandaのデータフレームの列との論理比較
- 9. Javaの論理演算子との文字列比較
- 10. PHPの論理演算子の比較評価
- 11. if文の1行で複数の論理比較
- 12. c、ビット単位、論理式
- 13. 合金 - 一次論理で比較する
- 14. javascriptの文字列比較の基礎となる論理は何ですか?
- 15. C++の8ビット整数と32ビット整数のビット単位の論理和
- 16. バイトのJavaビット単位の比較
- 17. マイクロコントローラでのビット単位の論理
- 18. COBOLのビット単位論理演算子?
- 19. NFAの賛否両論はDFAと比較してですか?
- 20. 画像処理とアンドロイドアプリの比較
- 21. ビット単位の操作と値の比較
- 22. ビット論理によってビットが現れる文字列
- 23. エラー処理と対象処理の例外処理の比較
- 24. 論理演算子とビット演算子VB
- 25. 比較条件と比較条件
- 26. Googleアナリティクスとリアルタイムアナリティクスの比較:ChartbeatとClickyとMixpanelの比較
- 27. ハンドルバーテンプレート内の論理論理
- 28. csvファイルパスの配列を指定されたプロジェクト名の配列と比較する論理的な方法
- 29. カウントループと比較
- 30. コピーデータと比較
パフォーマンス上の問題:通常、これらの低レベル操作の違いは、プログラムの全体的なパフォーマンスに10 ** 6回以上のオーダーの影響を与えます。あなたが(OP!)何度もその操作を実行する必要がある場合は、numpy/scipyのような数値/科学ライブラリに切り替えなければならない可能性があります。 – mac
パフォーマンス上の問題。 'and'と' or'は左から右に作用する "短絡"演算子なので、 'aと(何かひどく高価な)'が 'a&(something 'a'がFalseのとき)。短絡の評価は、まったく無視できる効果ではありません。それは深遠です。 –