warum bekommt man x 1x bei folgender Anweisung?

... komplette Frage anzeigen

2 Antworten

Na ganz einfach:

F3 ist größer 0 und somit wahr (true) und 80 genauso. Und wahr UND wahr ergibt in C nun mal als Standard die 1. Alles außer 0 ist wahr. Das kennen vorallem die Unix-Programmierer, die gerne folgendes schreiben:

if ( pid = fork() ) //JAAAA nur der Zuweisungsoperator, nicht der Vergleichsoperator

Du machst den gleichen fehler, nur andersherum: Du fragst, ob 2 Zahlen true sind:

0xF3 && 0x80

Du solltest vielleicht, dein Problem lösen können, wenn du statt dem logischen UND, das biweise UND benutzt:

0xF3 & 0x80

Ich hoffe ich konnte dir helfen

Gruß
Omni

Antwort bewerten Vielen Dank für Deine Bewertung

ich denke wie es zu den x en kommt kannst du dir selbst erklären
%4d will nun einen 4stelligen integer ausgeben (integer = ganzzahl)
0xf3&&0x80 beinhaltet nun die 1
der && operator (und operator genannt) überprüft ob beide werte wahr (englisch true) sind. da c kein true oder false kennt wird 1 oder 0 verwendet
sowohl f3 als quh 80 stellen zahlen ungleich 0 dar und sind sonit wahr

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Kirra1
20.01.2016, 21:37

das weiss ich :) 

F3 = 11110011

80= 10000000

da hat man mit UND Operstor : 

10000000
 oder =????

0

Was möchtest Du wissen?