Пример #1
0
 public static UHugeInt operator -(UHugeInt left, UHugeInt right)
 {
     UHugeInt returnValue = new UHugeInt();
     returnValue.digits = (List<byte>)Minus(left, right);
     OverflowMinus(returnValue.digits);
     return returnValue;
 }
Пример #2
0
 static IList<byte> Plus(UHugeInt left, UHugeInt right)
 {
     IList<byte> returnValue = new List<byte>();
     for (int i = 0; i < left.digits.Count || i < right.digits.Count; i++)
     {
         if (i < left.digits.Count && i >= right.digits.Count)
             returnValue.Add(left[i]);
         if (i < right.digits.Count && i >= left.digits.Count)
             returnValue.Add(right[i]);
         else
             returnValue.Add((byte)(left[i] + right[i]));
     }
     return returnValue;
 }
Пример #3
0
 protected bool Equals(UHugeInt other)
 {
     if (ReferenceEquals(null, other))
         return false;
     if (ReferenceEquals(this, other))
         return true;
     if (this.digits.Count != other.digits.Count)
         return false;
     for (int i = 0; i < this.digits.Count; i++)
     {
         if (this.digits[i] != other.digits[i])
             return false;
     }
     return true;
 }