X-Git-Url: https://git.novaco.in/?p=NovacoinLibrary.git;a=blobdiff_plain;f=Novacoin%2Fuint160.cs;h=be4d9180a4e5542b4c8b9cc19dbb74f44ae3f593;hp=cdf633a446aa4148e33912dc9a63027527c11816;hb=a1df90fa7b7daf76469bd5e691910c74d92bf802;hpb=384257c389f95406f5287d84e2d449f541db512f diff --git a/Novacoin/uint160.cs b/Novacoin/uint160.cs index cdf633a..be4d918 100644 --- a/Novacoin/uint160.cs +++ b/Novacoin/uint160.cs @@ -194,7 +194,7 @@ namespace Novacoin return a; } - public static uint160 operator /(uint160 a, uint b) + public static uint160 operator /(uint160 a, uint divisor) { var result = new uint160(); @@ -205,13 +205,28 @@ namespace Novacoin { r <<= 32; r |= a.pn[i]; - result.pn[i] = (uint)(r / b); - r %= b; + result.pn[i] = (uint)(r / divisor); + r %= divisor; } return result; } + public static uint operator %(uint160 a, uint divisor) + { + ulong r = 0; + int i = a.nWidth; + + while (i-- > 0) + { + r <<= 32; + r |= a.pn[i]; + r %= divisor; + } + + return (uint)r; + } + #endregion #region Shift