の左シフトを<<使用なぜ、人は乗算を達成するために左シフトを使用しています。たとえば、3 * i、一部の人々はiを使用することを好む< < 1 + i、左シフトを使用して共通のもの以上の利点はありますか?多くの人が代わりに多くのコードで乗算
答えて
私の頭に浮かぶ1つの理由は、ビット単位の操作が実行されているという点です。コードは、16進数(意見の問題)を使用するよりも、このスタイルの表記法でより明確になり、より明確になります。
例えば - 第三ビットがセットされているポイントを作るためのエンジニアは、この場合には、コンパイラは完全にこれを離れて最適化すると0x08のの割り当てと交換することを
uint32 foo = 1 << 3;
注意を行う可能性があります。第3ビットの設定は非常に明確です。
これは、埋め込みプログラミング、暗号化、および私の頭に飛びついていない他のビット特有のツイッディングで多く使用されています。
パフォーマンスの最適化のためのものではありません。コンパイラは2倍の最適化を期待できます。いずれの場合でも、ほとんどのアプリケーションでこのような利点を認識することはまずありません。
ただし、3*i
はi << 1+i
に置き換えられていますが、同じ操作ではないため、不良です。
いいえ、例は(i << 1)+ iであり、それらは同じものです –
@zhichaiあなたの例は 'i << 1 + i'ではありません(i << 1)+ i違いは+ is優先順位が高くなり、最初に実行されます。 – UKMonkey
私の間違いは、() –
- 1. 多くの人から多くの人へ単一のエンティティで多くの人から多くの人へ
- 2. SQLAlchemy多くの人から多くの人へのフィルタリング方法
- 3. Laravel 5.2 |多くの人から多くの人へのクエリ
- 4. 多くの人から多くの人へのHQLのやり方は?
- 5. 余分な列で多くの人に多くの人を続ける
- 6. JPA多くの人と多くの関係でコラムで注文
- 7. メソッドの多くのパラメータの代わりに?
- 8. つのSQLクエリの代わりに、多くの
- 9. OL3ベクトル/ wfs多くの代わりに1つの機能
- 10. JavaScriptの代わりに1画像多く
- 11. 多くのキーワードパラメータを使用する代わりに、
- 12. 多くの人から多くの人へのネストされた属性のファイル
- 13. 多くの人から多くの人への熱心な負荷
- 14. 多くの人から多人数のリレーションシップへデータを取り出す方法
- 15. 多くの人が永続しない
- 16. 多くのデータベースに多く
- 17. LINQクエリ - 多くのクロスに多くが
- 18. 多対多リレーションシップでIDの代わりにSQL名
- 19. 多くのコードでは
- 20. 多くの人が多くの人のために入れ子になったフォーム
- 21. 多くの人がFlask-SQLAlchemyを使用して、実行された代わりにraw sqlを返します。
- 22. あまりにも多くのパラメータを持つメソッドの代わりに
- 23. 多くの個人プロジェクトにリアクションコンポーネントをデプロイ
- 24. 多次元行列乗算
- 25. 多くの人から多くの人が流暢なnhibernateにレコードを取得していますか?
- 26. 多くの多くのlaravel
- 27. 多くのif文の代わりに使用できますか?
- 28. このコードからより多くの人にメールを送信するには?
- 29. Django、より多くの多くの2つの多くの管理者
- 30. symfonyオブジェクトの代わりに多対多リレーションプロパティ
シフトが速くなります。次に、良いコンパイラはとにかく乗算を最適化します。 –
ポイントがないので、これを行う人はほとんどいません。 –
これらの多くの人々は、1980年代に固執しているか、最適化コンパイラを最適化できないと考えています。多分彼らはできる。ほとんどの場合、そうすることはできません。 – user4581301