c - 这个比较是假的吗?

标签 c md5 md5sum

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))

好像总是返回 0,对吧?

最佳答案

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

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

其中 X =

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

关于c - 这个比较是假的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44775805/

相关文章:

c - 谁使用 POSIX 实时信号,为什么?

c - 将 64 位指针存储在 32 位整数中,前提是最大虚拟内存地址 <= UINT32_MAX(例如,当 RAM 大小 <= 4GB 时)

我可以通过 C 宏自动收集函数列表吗

php - md5哈希加解密

git - 如何通过哈希验证 Git 安装程序?

JAVA Md5 返回非确定性结果

c - ROT13实现中的段错误和警告

android - AWS/Android 无法计算 md5 哈希

linux - 我将如何进行这项工作?

java - 来自本地文件的 MD5 和来自 S3 的 MD5 (eTag) 不相同