Warum ist "Ja" ein Wert von -1 in MS Access-Datenbank?
Ich bin auf der Suche bei verknüpften Daten in MS Access.
Den "ja/Nein" - Felder enthalten den Wert -1 für JA und 0 für NEIN. Kann mir jemand erklären, warum solch ein counter-intuitive-Wert wird verwendet für "ja"? (Natürlich sollte es werden 1 und 0)
Ich mir vorstellen, muss es einen guten Grund, und ich möchte es wissen.
InformationsquelleAutor der Frage Supermitch | 2012-01-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ist die binäre Darstellung von
False
ist0000000000000000
(wie viele bits verwendet werden, abhängig von der implementation). Wenn Sie führen Sie eine binäre NICHT-operation auf, wird es geändert werden, um1111111111111111
d.h.True
aber das ist der binären Repräsentation der Ganzzahl-1
.Etwas
1
auf der wichtigsten position-Signale eine negative Zahl für vorzeichenbehaftete zahlen. Ändern das Vorzeichen einer Zahl geschieht durch invertieren aller bits und addition von 1. Dies nennt man die Zweierkomplement.Ändern wir die Zeichen der
1111111111111111
. Zuerst umkehren; wir erhalten:0000000000000000
Fügen Sie dann ein:
0000000000000001
ist dies1
.Dies ist der Beweis, dass
1111111111111111
war die binäre Darstellung von-1
.UPDATE
Auch, wenn man diese Werte nicht vergleichen
oder
stattdessen vergleichen Sie
diese gibt immer das korrekte Ergebnis, unabhängig von der Konvention verwendet. Die meisten Implementierungen behandeln, jeder Wert ungleich null als
True
.InformationsquelleAutor der Antwort Olivier Jacot-Descombes
"Ja" ist -1, weil es sonst nicht viel anderes.
Beim Umgang mit Microsoft-Produkten, vor allem ein so altes, wie der Zugriff nicht davon ausgehen, dass es einen guten Grund für alle design-Wahl.
InformationsquelleAutor der Antwort cdeszaq