2016-04-20 9 views
0

論理式では、2つの "and(&)"オペランドを使用しますが、その理由は何ですか?それはプログラムの背景でどのように機能するのですか?私はマシンがその命令をどのように実行するのかを意味しますか?なぜ(a && b)ではなく(a&b)を記述するのですか?

+1

'&&' vs '&'の選択は**言語固有の構文決定**です。この時点では、主に歴史的な理由があります。同様に、正確なルール(例えば、短絡かどうか)と実装は言語/実行時に固有です。 – user2864740

+0

スレッドに従ってください:http://stackoverflow.com/questions/4163483/what-is-the-diffrence-between-and-operators-in-c-sharp –

答えて

1

&はビット単位の演算子であり、常に両辺を評価します。

&&は論理演算子なので、左側が評価され、trueの場合は右側が評価されます。そのため、&&を使って短絡動作と呼ばれることがあります。

これは、言及された演算子が膨大な数の言語(C、C#、Javaなど)でどのように実装されているかを示しています。

0

は、典型的には2つを有する "と" オペランド論理ととビット単位のAND間を区別することです。

これらの操作の違いは何ですか?

(通常、ほとんどの言語で& &か「と」として表される)「論理とは、」2つのブール値を比較します。ここで重要なのは、「論理AND」は、真または偽の値に対する操作を実行することです。真と偽がどのようにビットの面で表現されるかの基本的な実装は、本当に重要ではありません。

"Bitwise and"(単一の "&"で表されます)は、これらの値のすべてのビットに対して2つの値の間で "論理"を実行します。。たとえば、2つの8ビットの符号なし整数:5と9をとります。バイナリでは、5は00000101のように見えます。9は00001001のように見えます。 "ビット単位の"とは、で1に設定されたビットを計算して、の数です。ビット単位で5と9の間の結果は1になり、バイナリでは00000001になります。

「ビット単位の操作」をGoogleで検索すると、これに関する詳細が表示されます。

関連する問題