- ベストアンサー
論理ANDとビットAND
MSDNを見ていたら 「Visual Basic 6.0 では、And キーワードは、オペランドの型に応じて論理 AND かビット AND を実行していました 。Visual Basic .NET では、AND は論理 AND しか実行しません。」 と書いてあったのですが両者の違いがわかりません。 また、.NETでビットANDが使えなくなって困ることはないのでしょうか?
- みんなの回答 (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 演算子は短絡評価しないので、注意が必要です。 (他の高級言語では、一般に論理演算は短絡評価) 他言語ですが、類似の質問がありましたので、こちら↓も参考にしてみてください。
その他の回答 (1)
- MovingWalk
- ベストアンサー率43% (2233/5098)
IF文などの条件式での論理演算のことじゃないでしょうか? VB .NET の演算子にビット演算子がないわけではありません。 http://www.microsoft.com/japan/msdn/net/vbnetref/vbnetref3-4.asp