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
Gast
#2524010
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.
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.