这个比较是假的吗?

Is this comparison dummy?

RFC1321

我注意到这段代码:

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

比较看不懂:

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

一直都是这样returns0,对吧?

没有这样的比较。看看括号是如何配对的:

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

其中 X =

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