java – 方法add mod 2 ^ 512

它添加模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;
}
最佳答案
对整数进行逐位右移(>>)的数学效果是除以2(截断任何余数).通过右移8次,除以2 ^ 8或256.

按位&使用0xFF表示结果将限制为第一个字节或0-255的范围.

不确定为什么它实际除以256时引用模512.

相关文章

    转载注明原文:java – 方法add mod 2 ^ 512 - 代码日志