Compact C expression

11/11/2008 - 14:32 von Felix Stocker | Report spam
Hi

Bin grade ueber die folgende Code line gestossen, kann mir hier jemand
erklaeren was hier genau vorgeht?

s = (USHORT) (carry = (ULONG)a + (ULONG)b + (ULONG)(USHORT)(carry >>
BITPERDIGIT));

Es ist mir klar, dass hier irgendwie die Summe und das Carry von zwei
Zahlen berechnet wird. Was ist jedoch nicht verstehe, ist wie das mit
den 2 Zuweisung s = und carry = zu verstehen ist und wieso dann dieses
Carry auch auf der rechten Seite verwendet wird.

Danke fuer jede Erleuchtung,
Felix
 

Lesen sie die antworten

#1 Achim Peters
11/11/2008 - 14:36 | Warnen spam
Felix Stocker schrieb:
Bin grade ueber die folgende Code line gestossen, kann mir hier jemand
erklaeren was hier genau vorgeht?

s = (USHORT) (carry = (ULONG)a + (ULONG)b + (ULONG)(USHORT)(carry >>
BITPERDIGIT));

Es ist mir klar, dass hier irgendwie die Summe und das Carry von zwei
Zahlen berechnet wird. Was ist jedoch nicht verstehe, ist wie das mit
den 2 Zuweisung s = und carry = zu verstehen ist und wieso dann dieses
Carry auch auf der rechten Seite verwendet wird.



1) Das Ergebnis einer Zuweisung kann man wieder zuweisen:

a = b = 2;

setzt a und b auf 2.

2) Eine Variable kann links und rechts einer Zuweisung stehen:

a = a + 1;

Nimmt den alten Wert von a, zàhlt eins drauf und weist das Ergebnis
wieder a zu.

HTH

Bye
Achim

Ähnliche fragen