在md5计算算法中,有一个函数
// decodes input (unsigned char) into output (uint4). Assumes len is a multiple of 4.
void MD5::decode(uint4 output[], const uint1 input[], size_type len)
{
for (unsigned int i = 0, j = 0; j < len; i++, j += 4)
output[i] = ((uint4)input[j]) | (((uint4)input[j+1]) << 8) |
(((uint4)input[j+2]) << 16) | (((uint4)input[j+3]) << 24);
}为什么不直接用memcpy复制呢?是不是因为不同机器上可能有不同的字节顺序?
发布于 2012-12-17 13:02:17
正确,这是一个字节排序的事情。它等同于小端系统上的直接拷贝,但最终颠倒了大端系统上的字节。
https://stackoverflow.com/questions/13908499
复制相似问题