维吉尼亚解密和取模

Vigenere decryption and modulo

我正在查看维基百科上的 Vigenère encryption/decryption 算法,我想知道哪种方法最 efficient/correct 介于:

return a % b

和:

if a < 0    
    return a += b
else 
    return a

当: -b <= a <= b

或者编译后就等价了?

谢谢赐教:)

IMO,这种极小的优化没有什么意义,因为在出​​现任何可察觉的差异之前,您需要长达数百万个字符的文本。

与其他运算相比,模运算和条件分支都是 "costly",它们非常依赖于处理器架构。因此,唯一知道的方法是进行基准测试,在现实条件下充分注意并获得可重现的结果(这有点矛盾)。

这就是说,请注意 % 不会为负参数实现真正的模运算,如果您这样假设,您将得到错误的结果。