Значения с тремя состояниями - есть ли соглашение?

Я получил некоторую проблему, и я не уверен, каков ответ.

В принципе - существует ли соглашение о том, какие значения использовать в трехсторонних типах данных? Погуглил, не похоже, что есть: Я видел:

  • -1 = Ложь, 0 = Неизвестно / Не определено, +1 = Истина
  • 0 = Ложь, +1 = Истина, +2 = Неизвестно / Не определено
  • -1 = Неизвестно / Не определено, 0 = Ложь, +1 = Истина

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

Править
Также нашел, что Microsoft похоже, что в недавнем коде используется : -1 = истина, 0 = ложь, 2 = неизвестно. Я предполагаю, что наличие 2 == unknown означает, что он устраняет двусмысленность при интерпретации + 1 / -1, если просто смотреть на необработанные значения в отладчике / дампе / памяти и т. Д. Как ни странно, этот параметр обращается именно к этому одна только причина (устраняет шанс забыть, какой вариант 1 означает «истинный»).

7
задан Chris J 7 June 2011 в 12:58
поделиться