Jemand mathematische logik disem c programm erklären
3 Antworten zur Frage
Videos zum Thema
Kann mir jemand die mathematische Logik in disem C-Programm erklären?
Leider ist mir der Formalismus von C nicht geläufig, daher nur ein allgemeiner Hinweis:
Es gibt drei Grundarten von logischen Verknüpfungen:
UND-Verknüpfung: Wenn A UND B jeweils '1' ist, dann kommt '1' heraus, wenn eines davon '0' ist, dann '0'
ODER-Verknüpfung: Wenn A oder B '1' ist, dann kommt '1' heraus, wenn beides '0' ist, dann kommt '0' heraus.
EXCLUSIVES ODER: Wenn beide '0' oder beide '1' sind, dann kommt '0' heraus, wenn eines von beiden '1' ist, dann '1
UND: 0+0=0
1+0=0
0+1=0
1+1=1
ODER
0 +0=0
1+0=1
0+1=1
1+1=1
XOR:
0+0=0
1+0=1
0+1=1
1+1=0
steht bei dir ja für "FALSCH", 1 für wahr. In C ist es so, das da zwar bei Integer auch 0 für falsch steht, allerdings ist für C jede Zahl ungleich 0 wahr. In dem Code wird jetzt der Wahrheitswert wieder in eine Zahl zurückgewandelt , d.h. es kommt in Ergebnis entweder 0 für falsch oder aber irgend etwas anderes für wahr raus. Ob das 1 ist, hängt vom C-Compiler ab, ich habe da auch schon Compiler gesehen, die da -1 nehmen. Ich nehme der Einfachheit halber mal 1 im Beispiel:
a=0;b=0;ergebnis=!;
! ist die Negation, d.h. aus 0 wird 1 und umgekehrt, && ist AND. Das gibt in einzelnen Schritten:
ergebnis =!
ergebnis =!
ergebnis =!0
ergebnis
Wie kann ich vorhersagen, ob 0 oder 1 rauskommt?