它是对 2^512 求模。你能解释一下为什么我们在这里做 >>8 然后 &oxFF 吗? 我知道我数学不好。
int AddModulo512(int []a, int []b)
{
int i = 0, t = 0;
int [] result = new int [a.length];
for(i = 63; i >= 0; i--)
{
t = (a[i]) + (int) (b[i]) + (t >> 8);
result[i] = (t & 0xFF); //?
}
return result;
}
最佳答案
整数右移 (>>) 的数学效果是除以二(截断任何余数)。通过右移 8 次,除以 2^8,即 256。
带0xFF的按位&表示结果将被限制在第一个字节,或者0-255的范围内。
不确定为什么它在实际除以 256 时引用模 512。
关于java - 该方法添加 mod 2^512,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29994931/