2
A
答えて
6
明示的なビットクリア演算子を使用すると、リテラルや型なしの定数を扱いやすくなります。
型なし整数のデフォルトの型はintであるため、a := uint32(1) & ^1
のようなものは、^ 1が最初に評価され、-2と等しい^ int(1)と評価されるため不正です。 a := uint32(1) &^ 1
は有効ですが、ここでは1はコンテキストに基づいてuint32として評価されます。
明示的なビットクリアでパフォーマンスが向上する可能性もありますが、それについてはあまりよく分かりません。
関連する問題
- 1. C/C++に|| =演算子がないのはなぜですか?
- 2. std :: shared_ptrに[]演算子がないのはなぜですか?
- 3. なぜC++には〜=と!=演算子がありませんか?
- 4. はなぜエラー「演算子^」
- 5. auto_ptrにテンプレートコピーコンストラクタとオーバーライド演算子関数があるのはなぜですか?
- 6. std :: listの演算子[]がないのはなぜですか?
- 7. なぜLIKE演算子のESCAPE引数がありますか?
- 8. なぜRubyに!==演算子がないのですか?
- 9. なぜ算術演算子とアクセス演算子を使用するときにアップキャストするのですか?
- 10. Python - なぜ+ =演算子が動作しないのですか
- 11. なぜJavascript演算子 "&&"が変なのですか?
- 12. Pythonの "&=" set演算子が "&="整数演算と異なる動作をするのはなぜですか?
- 13. なぜtypeofはプロパティではなく演算子ですか?
- 14. Pythonの "is"演算子のGoに相当するものは何ですか?
- 15. 派生クラスで基本クラス演算子=(代入演算子)を使用しないのはなぜですか?
- 16. C++に演算子の同義語が必要なのはなぜですか?
- 17. SceneKitに演算子のオーバーロードがないのはなぜですか?
- 18. なぜNull Coalesce演算子はnullを返すのですか?
- 19. キャスト演算子がプライベートベースに使用されないのはなぜですか?
- 20. scanfにアドレス演算子が不要なのはなぜですか?
- 21. C# - なぜObjectクラスにはtrue演算子がありませんか?
- 22. なぜRustの演算子は出力変数型ですか?
- 23. なぜnewはC++の演算子ですか
- 24. 挿入演算子のオーバーロードにはどのような問題がありますか? (<<演算子)
- 25. なぜ*演算子をオーバーロードできないのですか?
- 26. SAS:マクロ内のIN演算子がデフォルトでないのはなぜですか?
- 27. オーバーロード比較です演算子「無効な演算子は、<」
- 28. GOのJavascriptから変数宣言でOR演算子をエミュレート
- 29. CUDA:なぜビット演算子が論理演算子より速いのですか?
- 30. エリクサーで関数「キャプチャ演算子」が必要なのはなぜですか?
少なくともamd64では、同じマシンコードにコンパイルされるため、そこにはパフォーマンスの違いはありません。 – JimB
JimB、あなたはすべてをintに署名したらどういう意味ですか? –