これはおそらく基本的な質問ですが、以前はこの構文を使用したことがありません。誰かがこの表現がどのように評価されるかを詳しく教えてもらえますか? [IsOddはブール型であると仮定します]ありがとう。"(oddNumber And 1)= 1"がtrueに評価されるのはなぜですか?
1
A
答えて
3
0
ステートメントの最後に1の値が割り当てられているためです。
+1
これは真実ではありません(marcの答えを参照) –
0
And
オペレータはブール型AND
オペレーションを実行します。比較する値に低ビット(1)が設定されている場合(i
)、数値は奇数です。
Dim i As Integer = 3
Dim IsOdd As Integer
If (i And 1) Then
IsOdd = True
Else
IsOdd = False
End If
はそれが役に立てば幸い:
0
はこのような何かを試してみてください。
関連する問題
- 1. なぜ$((true == false))はbashで1と評価されますか?
- 2. ([1,0] == Trueの1)がFalseに評価されるのはなぜですか?
- 3. 式(0 == 0&1 == 1)がFalseに評価されるのはなぜですか?
- 4. なぜTrue!= True!= TrueがFalseに評価される
- 5. Pythonで(1 == 2!= 3)がFalseに評価されるのはなぜですか?
- 6. "(1/6)*(66.900009-62.852596)"がゼロに評価されるのはなぜですか?
- 7. C言語でif(!( - 1))がtrueまたはfalseに評価されますか?
- 8. "{1: 'a'、True: 'b'、1.0: 'c'、1.00: 'd'}"は "{1: 'd'}"と評価されますか?
- 9. `as.logical(2)`が `TRUE`に評価されるのはなぜですか?
- 10. 次の式がtrueに評価されるのはなぜですか?
- 11. 1 [1]がjavascriptで未定義に評価されているのはなぜですか?
- 12. SimpleXMLオブジェクトがTRUEと評価されるのはなぜですか?
- 13. Math.min([])が0に評価されるのはなぜですか?
- 14. 空の配列がFalseと評価されたときに、空のPowershellハッシュテーブルがTrueに評価されるのはなぜですか?
- 15. Perl if条件が常にtrueに評価されるのはなぜですか?
- 16. VB.Netでこれがfalseに評価されるのはなぜですか?
- 17. なぜプリインクリメントが評価されないのですか
- 18. なぜ(true && 1)は1を返しますが、(1 && true)がtrueを返しますか?
- 19. 次は、「hi」と評価されるのはなぜですか?
- 20. 条件の1つがFALSEのときにIF(A || B)条件がTRUEと評価されるのはなぜですか?
- 21. ノード4ではinstanceofがノード6ではなくtrueに評価されます。
- 22. AND演算子がxslファイルで評価されていない
- 23. なぜこのJavaScript式はfalseに評価されますか?
- 24. コードブロック中にconstキーワードが再評価されるのはなぜですか?
- 25. これはなぜFalseに評価されますか?
- 26. -0 === 0が本当に評価されるのはなぜですか?
- 27. bool(xml.etree.ElementTree.Element)がFalseに評価されるのはなぜですか?
- 28. 2番目のifelseが評価されないのはなぜですか?
- 29. なぜ1!= 1がtrueを返しますか?
- 30. なぜ私のIf-Elseは本当に評価されないのですか?
答えをありがとう。では、バイナリの数値が001になるかどうかをどうやって判断しますか?たとえば、この式では4という数字がどのように扱われますか?これを理解するためにバイナリナンバーを徹底的に理解する必要がありますか? –
1の値は、0の無限列として、最後には1として表すことができると考えてください。 "0と0 = 0"、 "0と1 = 0"なので、ビット値(0または1)の影響を受けるこれらのゼロはすべて0を返します。したがって、最後のビットだけが重要です。確かめたい場合は完全にテストすることができますが、このコード行は数字が奇数かどうかを効果的に判断します。 –
別の例:10進数 '204 And 170'を考えてみましょう。バイナリでは、 '11001100と10101010'です。両方の数字が1の場合は1、どちらかが0の場合は0が得られるので10001000になります。10進数では88の結果です。したがって、204と170 = 88です。これは、ビット演算子が 'And'、' Or'、 'Xor'と' Not'のように動作する方法です。 –