私はJavaのbitwiseとbitshift演算子を理解しますはを行いますが、実際の使用方法はわかりません。たとえば、 "〜、< <、>>> >>>、&、^、|"の値を変更または比較すると便利なのはいつですか?JavaのBitwiseおよびBitshift演算子の機能は何ですか?
答えて
ビットフィールド(フラグ)
彼らはその状態がいくつかの「yesまたはno」プロパティで定義されて何かを表現する最も効率的な方法です。 ACLは良い例です。 4つの個別のパーミッション(読み込み、書き込み、実行、変更ポリシー)を言うならば、無駄ではなく1バイトに格納する方が良いでしょう。これらは、利便性を高めるために多くの言語で列挙型にマップできます。ポート/ソケット
上
通信は常にので、数値とは対照的に、通常、個々のバイトの論理値に依存チェックサム、パリティ、ようにビット、フロー制御アルゴリズム、および停止を含みます媒体は、一度に1ビットを送信することしかできない。
圧縮、暗号化
これらの両方が、ビット単位のアルゴリズムに大きく依存しています。例のdeflateアルゴリズムを見てください。すべてがビットであり、バイトではありません。
有限状態機械
彼らはあまりにもソフトウェアで見つけることができますが、私は、ハードウェアのいくつかの部分に埋め込まれた種類の、主に話しています。これらは、自然の中で、組み合わせている - など、彼らは文字通りダウン論理ゲートの束を「コンパイル」取得される可能性がありますので、彼らはのように表現する必要がAND、OR、NOT
グラフィック
ほとんどありませんグラフィックスプログラミングでこれらの演算子が使用されているすべての領域に入るには十分なスペースが必要です。 XOR(または^)は、同じ入力を2回適用すると最初のものを元に戻すので特に興味深いです。高価な再描画の必要性を排除するために、古いGUIでは選択ハイライトやその他のオーバーレイにこれを使用していました。遅いグラフィックスプロトコル(つまり、リモートデスクトップ)でもまだ便利です。
これは私が思いついた最初の数例にすぎません。これは徹底的なリストではありません。
- 1. Java演算子の論理&&および||
- 2. 演算子#+および# - .sbclrc
- 3. オーバーロード+ =、+、==、および=演算子
- 4. Pythonのブール演算子および論理演算子
- 5. Javaの演算子の機能バージョン?
- 6. ルビの "&:"演算子の機能は何ですか?
- 7. 論理&&および|| JavaScriptの演算子
- 8. 左および右のスターシーケンシング演算子は何をする予定ですか?
- 9. キューブ、ロールアップ、およびgroupBy演算子の違いは何ですか?
- 10. - >、*および。*演算子の正しい用語は何ですか?
- 11. C++および演算子[]のカスタムVectorおよびMatrixクラス
- 12. Javaの* =演算子の演算子の優先順位は何ですか?
- 13. ConstおよびNon-Const演算子オーバーロード
- 14. 演算子asおよびClassCastException
- 15. NSPredicateおよびKVCコレクション演算子
- 16. 関数呼び出しでは、演算子は何ですか?また、演算子は何ですか?
- 17. Ostream <<および演算子 - =クラスですか?
- 18. RedirectToAction()対View()および三項演算子ですか?
- 19. ビットワイズ演算子はどのように機能しますか?
- 20. C++演算子=機能
- 21. 演算子のオーバーロードは代入演算子でどのように機能しますか?
- 22. Javaで&の演算子は
- 23. この演算子は何ですか:&=
- 24. この演算子は何ですか、 "??"
- 25. JavaScriptの%演算子は何ですか?
- 26. 演算子のアリティは何ですか?
- 27. C++の演算子は何ですか?
- 28. および/または正規表現の演算子
- 29. 呼び出し演算子&のコマンドは何ですか?
- 30. java |演算子は何のためですか?
誰かが「乗算に実際に使用されるものは何か」と尋ねられたら、あなたの答えは何だろうと考えてください。私は「あなたは時々それを必要とする」以外に何を言いたいのか分からない。ビット単位の操作でも同じです。 – harold