2016-08-18 6 views
-6

これらのオペレータが本質的にどのように動作するかについての詳細な説明またはドキュメントを入手できますか?適用すると、出力は同じになります。これまでのところ、私はこのテーマについてはほとんど何も見いだせませんでした。[n&1]と[n%2]はどのように機能しますか?

+2

コンパイラは、それらを本質的に同じものを実行するように最適化することができます。 –

+1

両方のステートメントのアセンブリ言語を出力し、比較します。また、さまざまな最適化レベルでアセンブリ言語を比較します。 –

+0

@ThomasMatthews「mod」が2の累乗であるとき、見出しのように、はい。 – tofro

答えて

5

理論では、n&1は、数字の最下位ビットのみをマスクするか、または保持します。

n%2n2で割って残りを返します。

どちらも数字が偶数か奇数かを調べる一般的なテストです。

コンパイラは、同等の機能を式に置き換えることができます。コンパイラはどちらの場合もn&1の命令を発行することがあります。

さまざまな最適化レベルで関数のアセンブリ言語のリストを出力します。

+7

なぜdownvote? –

+0

'&'は[** bit-wise operator **](https://msdn.microsoft.com/en-us/library/4ke0e88k.aspx)と呼ばれます。 –

+0

@FirstStep:演算子についてはどこで言及しますか?私はそれが多くのビット演算子の一つであることを知っています。これは "ビット単位のAND"または "算術AND"と呼ばれます。 –

関連する問題