Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: "Странности" передачи параметров Добавлено: 23.02.10 21:53  

Автор вопроса:  Олег
Кто знает, объясните, пожалуйста, как это "работает"?

Код на Листе1 в Excel:
Private Sub Worksheet_Change(ByVal Target As Range)
  Call Proba(3 Or 9)
End Sub

Sub Proba(F As Integer)
 MsgBox (F)
End Sub


Теперь когда изменяем значение любой ячейки на Листе1, выскакивает сообщение с цифрой 11. Почему именно 11?

Ответить

  Ответы Всего ответов: 6  

Номер ответа: 1
Автор ответа:
 Олег



Вопросов: 9
Ответов: 30
 Профиль | | #1 Добавлено: 23.02.10 21:57
А, до меня дошло... Это, наверно, побитовое сложение или что-то в этом роде!

Ответить

Номер ответа: 2
Автор ответа:
 ADSemenov.ru



Вопросов: 5
Ответов: 276
 Web-сайт: www.adsemenov.ru
 Профиль | | #2
Добавлено: 24.02.10 08:43
____ Естественно. При таком сложении получается 11.

Ответить

Номер ответа: 3
Автор ответа:
 UnDeAdZak



Вопросов: 80
Ответов: 476
 Профиль | | #3 Добавлено: 24.02.10 12:56
угу, значит у всех 3+9=12, а у бейсика своя таблица умножения!=)

Ответить

Номер ответа: 4
Автор ответа:
 ADSemenov.ru



Вопросов: 5
Ответов: 276
 Web-сайт: www.adsemenov.ru
 Профиль | | #4
Добавлено: 24.02.10 14:39
____ Вообще не понятно, почему автор поставил "or", а не "+". Тогда бы и не удивлялся. :)
____ А поразрядное двоичное логическое "сложение" 0011 or 1001 как раз и даёт 1011, то есть 11 в десятичной системе.

Ответить

Номер ответа: 5
Автор ответа:
 Олег



Вопросов: 9
Ответов: 30
 Профиль | | #5 Добавлено: 24.02.10 16:12
ADSemenov.ru пишет:
Вообще не понятно, почему автор поставил "or", а не "+". Тогда бы и не удивлялся.


Да это я искал объяснение "загадочной" передаче параметров в примере вот из этой темы: http://www.vbnet.ru/forum/show.aspx?id=202225

Не понимал, вот и экспериментировал с простыми примерчиками, а получился "парадокс", как мне тогда казалось. Теперь разобрался. Там просто флаги устанавливают таким образом. А при помощи OR очень удобно устанавливать биты в двоичных числах. Давненько низкоуровневым программированием не занимался... подзабылось :)

Ответить

Номер ответа: 6
Автор ответа:
 mc-black



ICQ: 308-534-060 

Вопросов: 20
Ответов: 1860
 Web-сайт: mc-black.narod.ru/dzp.htm
 Профиль | | #6
Добавлено: 24.02.10 23:36
Or используют для составления значения с битовыми флагами в клиентской программе, а распознают внутри вызываемой подпрограммы флаги при помощи And и битовой маски.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам