我目前正在实现基于RSA数据安全代码的MD5哈希算法,在UpdateData方法中有一段内容如下:

mCount[0] += (length << 3);

if (mCount[0] < (length << 3))
{
    mCount[1]++;
}

我目前正在尝试了解if语句如何能够评估为true(mCount [0]值初始化为0)。任何帮助将不胜感激。

谢谢

最佳答案

如果mCount [0]变量溢出,则可能发生。

unsigned int i = 4294967295;//2^32-1
unsigned int j = 1;
i += j;
assert(i < j);

您提到的代码块可能被多次调用,具体取决于要处理的数据量。因此,mCount [0]最终将溢出。

10-05 18:53