Forum: Compiler & IDEs if ((destination_add & 0x80) && (source_add & 0x80))


von Simon (Gast)


Lesenswert?

Was bezweckt man damit?

if ((destination_add & 0x80) && (source_add & 0x80)) {}

Bitweise verknüpft?

Warum reicht hier nicht deinfach .._add ohne 0x80?

von Stefan E. (sternst)


Lesenswert?

Simon schrieb:

> Warum reicht hier nicht deinfach .._add ohne 0x80?

Weil man offensichtlich daran interessiert ist, ob in beiden Variablen 
Bit 7 gesetzt ist, und nicht ob irgendein Bit gesetzt ist.

von Simon (Gast)


Lesenswert?

ach soooo, das was zwischen die klammern ist, ist true sobald
es etwas anderes als 0x00 ist?

z.B.
destination_add
  11000000
& 10000000
= 10000000

und sobald Bit 7 = 0 wird somit ist das und nicht mehr erfuellt und das 
ergebnis ist 00000000?

von Marco L. (lehmi)


Lesenswert?

Simon schrieb:
> ach soooo, das was zwischen die klammern ist, ist true sobald
> es etwas anderes als 0x00 ist?
>

nein, true wenn 0x7f < destination_add

> z.B.
> destination_add
>   11000000
> & 10000000
> = 10000000
>
> und sobald Bit 7 = 0 wird somit ist das und nicht mehr erfuellt und das
> ergebnis ist 00000000?

Ja

von Rolf Magnus (Gast)


Lesenswert?

>> ach soooo, das was zwischen die klammern ist, ist true sobald
>> es etwas anderes als 0x00 ist?

Ja. Das gehört aber zu den absoluten Grundlagen von C.

> nein, true wenn 0x7f < destination_add

Genau dann ist doch das, was zwischen den Klammern ist, was anderes als 
0.

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
Noch kein Account? Hier anmelden.