我目前正在实现基于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]最终将溢出。