2017-06-27 2 views
2

Im RFC1321Ist dieser Vergleich Dummy?

bemerke ich dieses Stück Code:

if ((context->count[0] += ((UINT4)inputLen << 3)) < ((UINT4)inputLen << 3)) 
    context->count[1]++; 
context->count[1] += ((UINT4)inputLen >> 29); 

Ich verstehe nicht, den Vergleich:

((UINT4)inputLen << 3)) < ((UINT4)inputLen << 3)) 

Es ist wie es gibt immer 0, nicht wahr?

+1

weil Sie fälschlicherweise sind die Bedingung auswertet. Vergleicht man das Ergebnis von context-> count [0] + = ((UINT4) inputLen << 3) 'mit' ((UINT4) inputLen << 3) ' – LPs

+0

Mein Fehler ... Zu viele Klammern – nowox

+1

Lets not write 'UINT4 u4 = EingabeLen << 3; Kontext-> Anzahl [0] + = u4; if (context-> count [0] Lundin

Antwort

7

Es gibt keinen solchen Vergleich. Schauen Sie, wie die Klammern gepaart sind:

Es ist

(X < ((UINT4)inputLen << 3)) 

wo X =

(context->count[0] += ((UINT4)inputLen << 3))