wie versteht man diese Anweisung ( C sprache)?

... komplette Frage anzeigen

2 Antworten

Du hast schon alles richtig erkannt, und machtnix eigentlich alles erklärt:
"&" hat eine höhere Präzidenz als "|"
(kommt außerdem links, also selbst wenn sie die selbe Präz. hätten...).

Und dann wird eben (1010 & 0011) | 0111 berechnet. Das gibt 7.
Und 7 ist auch in hex eine 7.

Tipp: immer Klammern, auch wenn man weiß wie die Präzidenzen sind.
Denn der nächste, der Deinen Code liest, weiß es vielleicht nicht
(oder Du selbst in einem halbe Jahr...)

Tipp: mit printf("0x%02x", ...) sieht es im output besser aus...

Antwort bewerten Vielen Dank für Deine Bewertung

Der Ausdruck wird von links nach rechts ausgewertet. Außerdem hat & Vorrang vor |.

10&3 =2 - -> 2|7 =7.

https://de.wikibooks.org/wiki/C-Programmierung:\_Liste\_der\_Operatoren\_nach\_Priorit%C3%A4t

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Machtnix53
16.01.2016, 21:56

und es soll hexadezimal sein und 7 ist Dezimal !!!??

Im Bereich 0-9 ist hex und dez gleich.

1
Kommentar von maximilianus7
17.01.2016, 00:28

schau dir mal die fragen von Kirra1 an.

0

Was möchtest Du wissen?