Страницы: 1
RSS
почему true равно -1 ???
 
в xl всё понятно: ИСТИНА=1 а ЛОЖЬ=0
а в vba TRUE=-1 ???
попробовал:
Код
MsgBox True + True 'результат -2

или
Код
Sub tt()
Dim t As Boolean
t = True
MsgBox t * 5
End Sub
'результат -5

почему так? где про это можно почитать?
 
Цитата
почему так?
Не хочу включать КЭПа, но так придумали :)

Побороть можно, используя ABS (не путать с системой торможения).
 
VBA интерпретирует значение True как -1, а значение False как 0.
 
тип Boolean - 4х байтовое (или двухбайтовое, точно не знаю)
False - 0, когда все биты равны нулю
True - &hFFFF - все биты равны единице, можно легко проверить, в окне Immediate написать ?Hex(True)
При преобразовании в Long &hFFFF означает "-1", поэтому False = 0, True = -1
Изменено: MCH - 21.10.2013 18:52:13
 
всем спасибо
Страницы: 1
Наверх