[英]C# modulus equation return wrong value
var newPosition = (position - key) % alphabet.Length;
当position为66时,键为7964,并且Alphabet.length = 91时,newPosition以某种方式为-72,即使应该为19。为什么?
请注意,%实际上不是模数,而是余数
static decimal modulus(decimal a, decimal b)
{
return a - b * Math.Floor(a / b);
}
...
Console.WriteLine( nfmod(66-7964 , 91));
输出继电器
19
使用/用于模块
var newPosition = (position - key) / alphabet.Length;
((position - key) % alphabet.Length + alphabet.Length) % alphabet.Length
绝招
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.