MATLAB中的溢出整数乘法

时间:2015-07-10 11:08:08

标签: c++ matlab integer-overflow

我正在尝试在MATLAB中实现murmurHash,我已经在C ++中使用了代码。在C ++代码中:

static const uint32_t c1 = 0xcc9e2d51; //(3432918353 in decimal)
        .
        .
        .
k1 *= c1;// k1 is 6649713 before multiplication

在乘法后,它给出结果3117918145(这是mod(3432918353 * 6649713,4294967296),以使其保持在32位无符号整数的边界内)。

但是,在MATLAB中,它给出了结果4294967296,它对于32位无符号整数是最大的。无论如何通过不将数字转换为64位并计算模数wrt 4294967296(最大32位)来克服这个问题?

0 个答案:

没有答案