• ベストアンサー

論理ANDとビットAND

MSDNを見ていたら 「Visual Basic 6.0 では、And キーワードは、オペランドの型に応じて論理 AND かビット AND を実行していました 。Visual Basic .NET では、AND は論理 AND しか実行しません。」 と書いてあったのですが両者の違いがわかりません。 また、.NETでビットANDが使えなくなって困ることはないのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
noname#4564
noname#4564
回答No.2

  > 両者の違いがわかりません。 論理値には通常、真/偽の2値しか存在しません。(PL/SQLにはTRUE/FALSE/NULLの 3値があるが、これは例外的) 数値を論理値に変換すると非ゼロはすべてTrueとなります。 ビット演算については、情報処理資格試験やC言語、TCP/IPの入門書などに解説があります。 簡単な例を示すと、 11 And 17 And 23 → 1 2進数表現では 11 → 01011 17 → 10001 23 → 10111 となり、ビット毎の積は00001となります。 ビット和も同様で、 13 Or 19 Or 23 → 31 13 → 01101 19 → 10011 23 → 10111 13 Or 19 Or 23 → 11111となります。 > Visual Basic .NET では、AND は論理 AND しか実行しません。 > (中略) > また、.NETでビットANDが使えなくなって困ることはないのでしょうか? β版段階で仕様変更の話もありましたが、現在のところ、元の仕様(VB6.0と同等)に 戻っています。 VB.NETでは短絡評価用にAndAlso / OrElse 演算子が追加されましたが、And / Or 演算子は短絡評価しないので、注意が必要です。 (他の高級言語では、一般に論理演算は短絡評価) 他言語ですが、類似の質問がありましたので、こちら↓も参考にしてみてください。

参考URL:
http://oshiete1.goo.ne.jp/kotaeru.php3?q=489427

その他の回答 (1)

  • MovingWalk
  • ベストアンサー率43% (2233/5098)
回答No.1

IF文などの条件式での論理演算のことじゃないでしょうか? VB .NET の演算子にビット演算子がないわけではありません。 http://www.microsoft.com/japan/msdn/net/vbnetref/vbnetref3-4.asp

関連するQ&A