Почему -1 является результатом принуждения True в целое число в VB6?

В VB6 приведение True к целому числу дает значение -1.

Почему это так? Какова причина этого?

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

Я действительно вижу определенную элегантную симметрию в том факте, что побитовое не -1 (Истина) даст 0 (Ложь), и наоборот (из-за того, что представление -1 - это все 1s в дополнении до двух ), но я не могу думать о каких-либо практических преимуществах этой идентичности.

Я спрашиваю, кстати, только из любопытства - это было то, что меня поразило как это было странно, когда я впервые изучил VB6, и с тех пор мне интересно.

6
задан Robert Harvey 26 October 2010 в 14:26
поделиться