Hallo, ich habe ein Verständnissproblem bei folgendem Auschnitt eines C-Programms: int g; int x = 7, y = 8; g = !(x&&y) Meine Frage liegt jetzt darin: g soll ja einen Wert 0 oder 1 liefern. Wenn ich 7(binär:0111) und 8(binär1000) verunde erhalte ich doch 0000 und dann noch negiert wegen dem !, heißt für g = 1111. Aber voher weiß ich jetzt ob das true 1 oder false 0 ist ? Ich hoffe jemand kann mir das kurz erklären. Vielen Dank! Thomas
Thomas E. schrieb: > Hallo, ich habe ein Verständnissproblem bei folgendem Auschnitt eines > C-Programms: > > int g; > int x = 7, y = 8; > > g = !(x&&y) > > Meine Frage liegt jetzt darin: > g soll ja einen Wert 0 oder 1 liefern. Wenn ich 7(binär:0111) und > 8(binär1000) verunde erhalte ich doch 0000 aufpassen! Das ist kein bitweises und sondern ein logisches Und. 7 ist nicht gleich 0 und daher logisch TRUE 8 ist nicht gleich 0 und daher logisch TRUE TRUE && TRUE ergibt wieder TRUE. Und die Negierung davon ergibt FALSE In der "Vorwärtsrichtung" Alles was 0 ist, ist logich FALSE. Alles ungleich 0 gilt als TRUE In der "Rückwärtsrichtung" FALSE wird als 0 dargestellt TRUE wird als 1 dargestellt !FALSE ergibt also 1
Thomas E. schrieb: > Wenn ich 7(binär:0111) und > 8(binär1000) verunde erhalte ich doch 0000 das macht du aber nicht && != &
Karl Heinz Buchegger schrieb: > > 7 ist nicht gleich 0 und daher logisch TRUE > 8 ist nicht gleich 0 und daher logisch TRUE > > TRUE && TRUE ergibt wieder TRUE. > Und die Negierung davon ergibt FALSE > > > In der "Vorwärtsrichtung" > Alles was 0 ist, ist logich FALSE. Alles ungleich 0 gilt als TRUE > > In der "Rückwärtsrichtung" > FALSE wird als 0 dargestellt > TRUE wird als 1 dargestellt > > !FALSE ergibt also 1 Ok! ich glaube ich habe es vertanden. Ein weiteres Beispiel: h = D || 0 müsste doch True ergeben oder? Da D nicht gleich 0 also True und dann True || False ergibt True?
Thomas E. schrieb: > Ok! ich glaube ich habe es vertanden. Ein weiteres Beispiel: h = D || 0 > müsste doch True ergeben oder? Da D nicht gleich 0 also True und dann > True || False ergibt True? Wenn D tatsächlich ungleich 0 ist, dann ja.
Karl Heinz Buchegger schrieb: > Thomas E. schrieb: > >> Ok! ich glaube ich habe es vertanden. Ein weiteres Beispiel: h = D || 0 >> müsste doch True ergeben oder? Da D nicht gleich 0 also True und dann >> True || False ergibt True? > > Wenn D tatsächlich ungleich 0 ist, dann ja. Danke dir! D soll eine Hex.zahl sein also Dezimal 13
Thomas E. schrieb: > Karl Heinz Buchegger schrieb: >> Thomas E. schrieb: >> >>> Ok! ich glaube ich habe es vertanden. Ein weiteres Beispiel: h = D || 0 >>> müsste doch True ergeben oder? Da D nicht gleich 0 also True und dann >>> True || False ergibt True? >> >> Wenn D tatsächlich ungleich 0 ist, dann ja. > > Danke dir! > D soll eine Hex.zahl sein also Dezimal 13 Dann schreibs bitte in der C üblichen Notation 0xD oder 0x0D Ansonsten verwechselt man das mit Variablennamen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.