В VB6 приведение True
к целому числу приводит к значению -1.
Почему это так? В чем причина этого?
В большинстве других языков программирования (C / C ++, Java, Perl, Python и т. Д.) Значение true становится равным 1 при приведении к целому числу. В булевой алгебре значение 1 используется для представления true / on. Почему VB6 делает это по-другому?
Я вижу некоторую элегантную симметрию в том факте, что побитовое-не--1 (True) даст 0 (False), и наоборот (из-за того, что -1 представляет все 1 в дополнении до двух) ), но я не могу думать о каких-либо практических преимуществах этой личности.
Кстати, я спрашиваю только из любопытства - это было то, что показалось мне странным, когда я впервые выучил VB6, и с тех пор я удивляюсь.