• ベストアンサー

論理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

  • 論理演算について質問

    今度こそ最後にします、、 質問:&&や||等の論理演算子は、「その両側にある2つの型booleanのオペランドに対して論理演算する」こういうことでしょうか? YESかNOでお答えいただいた上で、補足があればお願いします^^ 質問2:私は、括弧内の式が優先的に計算されると思って、その旨の質問をしたところ以下のような回答が返ってきました。 「優先されるのは結合順であって、評価順序ではないです。例えば、a==1 && b==3 || a==1 && b==0の式ににかっこを追加して、a==1 && (b==3 || a==1) && b==0とすると||の第1オペランドは b==3、第2オペランドは a==1 に変わります。」 ここでいう「結合順」の「結合」とはどういう意味ですか? 私の仮説では、「ある演算子がオペランドを結合している」、こういうことでしょうか? そして、括弧を用いることにより、ある演算子のオペランドの結合を変化させ、演算子は その括弧内の両側のオペランドをつなぐ、こういうことでしょうか? YESかNOかでお答えください。その上で何か補足があればお願いします^^

    • ベストアンサー
    • Java
  • 生物の脳の論理回路とコンピュータの論理回路、多数決論理とAND、OR論理の違い

    生物の脳はすべて多数決論理でできています。一方コンピュータの論理回路はAND OR論理回路です。このような違いはどうして発生したのでしょうか? コンピュータがすべてAND OR論理で作られているのでAND OR論理の方が設計が楽なのではないかと思いますが、生物の脳はなぜ進化の過程でAND OR論理が選ばれなかったのでしょうか?

  • perlの論理演算子の「and」と「&&」の違い

    perlの論理演算子の「and」と「&&」の違いは、 「弱い結合」と「強い結合」とかで説明されている のを見かけますが、これは、 「短絡評価」(左側が偽だと右側が実行されない)と 「短絡評価でない」(左側の真偽に関係なく右側が実行される) のと同じ意味になるのでしょうか。 例えば、 sub x {  print "sub x\n";  return 0; } sub y {  print "sub y\n";  return 1; } の2つのサブルーチンがある場合に、 (1) if(&x==1 and &y==1){    print '真',"\n";   } else {    print '偽',"\n";   } (2) if(&x==1 && &y==1){    print '真',"\n";   } else {    print '偽',"\n";   } を、実行した場合、サブルーチンyは、 (1)では実行されず、(2)では実行される という理解で正しいでしょうか。 (実際にはどちらも実行されていないようなのですが)

    • ベストアンサー
    • Perl
  • (論理咳,論理和,排他的論理和)基本情報処理の問題

    今基本情報処理の勉強をしているのですが、 論理咳,論理和,排他的論理和の問題で、いまいちわからない部分がありますので教えてください。 【問題】 ビット数が等しい任意のビット列aとbに対して、等式=bと同じことを表すものはどれか。  ここで、AND,OR,XORはそれぞれ,ビットごとの論理咳,論理和,排他的論理和を表す。 ア a AND b = 00…0  イ a OR b = 11…1 ウ a XOR b = 00…0 エ a XOR b = 11…1 解答  「ウ a XOR b = 00…0」 となっているのですが  この質問に出ている 「00…0」 or 「11…1」は何を表しているのでしょうか?    「00…0」 = 全てのビットが0になる  「11…1」 = 全てのビットが1になる  という意味を指しているのでしょうか?

  • you and me, you and I

    you and me, you and I 両者どちらも「あなたと私」として訳されると思うのでが この違いは、どんな違いですか?

  • Visual Studio 2005は64ビットOSでもインストールできますか?

    Visual Studio 2005は64ビットOSでもインストールできますか? Visual Studio 2005は64ビットOSでもインストールできますか? 「開発ツール対応 OS 一覧」には、OS名しか記載されていません。 64ビット版を買って動かないと悲しいので教えてください。 開発ツール対応 OS 一覧 http://www.microsoft.com/japan/msdn/vstudio/support/tools.aspx

  • ビット演算子

    掲題の件ですが、 ネットを調べていて他の言語のビット演算子は見つけることができたのですが、Visual Basicでのビット演算子が見つかりませんでした。 ビットシフトだと A >> 2 A << 2 などとかかれていたのですが、これは使えるのでしょうか? よろしくお願いいたします。

  • 論理演算子について

    初歩的な質問だと思いますが・・・ 論理演算子の&はなんのためにあるのでしょうか? &&だけで十分な気がします。 &の右の条件が正しく動いているのかを確認するためだけのものでしょうか? 一応ですが&と&&の動作の違いはわかっていますので

  • SQL文について(ANDとORの論理演算について)

    下記の質問についてご教授お願い致します [設問] 国語と数学の試験を実施し、2教科の成績は氏名とともに、得点表に記録されている。 1教科は平均点以上で、残りの1教科は平均点未満の生徒氏名を表から抽出するSQLはどれか。 A:国語の点数が国語の平均点以上 B:数学の点数が数学の平均点以上 とするときに、SQL文は SELECT 生徒氏名 FROM 得点 WHERE (A OR B) AND NOT (A AND B) となります。 このときに、 WHERE (A OR B) AND NOT (A AND B) ここの論理演算を理解することが難しいです。 論理演算を分解すると A OR B 国語または数学が平均点以上であるケース NOT (A AND B) 国語と数学の両方が平均点以上であるケース となり、この両者をANDで取ると 1教科は平均点以上で、残りの1教科は平均点未満になることになります。 この論理演算でどうしてもこのような結果を引き出すことができません。 お手数ですがご教授お願いいたします。

  • 64ビット化による処理速度低下の要因について

    64ビット化による処理速度低下の要因について Visual C++ 2008で作成した32ビットアプリケーションを ネイティブなx64アプリとしてリビルドし、Windows7マシンで両者を比較したところ、 32ビット版に比べてx64版は実行処理速度が20%ほど低下してしまいました。 ソースは公開できませんが、30万行程の音声解析アプリケーションです。 どのサイトを見ても、x64版アプリの実行速度は多くの場合向上が見込まれる、 としか書かれていないのですが、速度が低下する要因としては何が考えられますか? 一般的なことで構いませんので、ご存知でしたら教えてください。

専門家に質問してみよう