From 384257c389f95406f5287d84e2d449f541db512f Mon Sep 17 00:00:00 2001 From: CryptoManiac Date: Thu, 3 Sep 2015 13:48:41 +0300 Subject: [PATCH] operator/ for uint160 and uint256 --- Novacoin/uint160.cs | 18 ++++++++++++++++++ Novacoin/uint256.cs | 19 ++++++++++++++++++- 2 files changed, 36 insertions(+), 1 deletions(-) diff --git a/Novacoin/uint160.cs b/Novacoin/uint160.cs index 4da1929..cdf633a 100644 --- a/Novacoin/uint160.cs +++ b/Novacoin/uint160.cs @@ -194,6 +194,24 @@ namespace Novacoin return a; } + public static uint160 operator /(uint160 a, uint b) + { + var result = new uint160(); + + ulong r = 0; + int i = a.nWidth; + + while (i-- > 0) + { + r <<= 32; + r |= a.pn[i]; + result.pn[i] = (uint)(r / b); + r %= b; + } + + return result; + } + #endregion #region Shift diff --git a/Novacoin/uint256.cs b/Novacoin/uint256.cs index 317b8d6..60e570d 100644 --- a/Novacoin/uint256.cs +++ b/Novacoin/uint256.cs @@ -202,7 +202,6 @@ namespace Novacoin return ret; } - public static uint256 operator ++(uint256 a) { int i = 0; @@ -251,6 +250,24 @@ namespace Novacoin { return a - new uint256(b); } + + public static uint256 operator /(uint256 a, uint b) + { + var result = new uint256(); + + ulong r = 0; + int i = a.nWidth; + + while (i-- > 0) + { + r <<= 32; + r |= a.pn[i]; + result.pn[i] = (uint)(r / b); + r %= b; + } + + return result; + } #endregion #region Shift -- 1.7.1