Почему "(oddNumber And 1) = 1" имеет значение true? - PullRequest
1 голос
/ 26 июля 2011

Это, наверное, основной вопрос, но я никогда раньше не использовал этот синтаксис. Может кто-нибудь рассказать мне подробно, как это выражение оценивает как истинное? [Предполагая, что IsOdd является логическим типом] Спасибо.

Dim i As Integer = 3
IsOdd = (i And 1) = 1

Ответы [ 4 ]

3 голосов
/ 26 июля 2011

3 является двоичным 11, 1 является двоичным 01

01 and 11 = 01

И 1 = 1

См. msdn для справки по битовым операторам

0 голосов
/ 26 июля 2011

Попробуйте что-то вроде этого:

Dim i As Integer = 3
Dim IsOdd As Integer
If (i And 1) Then
    IsOdd = True 
Else 
    IsOdd = False
End If

Надеюсь, это поможет.

0 голосов
/ 26 июля 2011

Оператор And выполняет логическую операцию AND;если младший бит (1) установлен на значение для сравнения (i), то число нечетное.

0 голосов
/ 26 июля 2011

Поскольку вы присваиваете значение 1 в конце оператора.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...