public void AddTo(BigNumber num) { if (num.Sign != this.Sign) { int compare = num.CompareAbsolute(this); if (compare < 0) { AbsoluteSubtractFrom(num, this); this.Sign = num.Sign; } else if (compare > 0) { AbsoluteSubtractFrom(this, num); this.Digits = num.Digits; } else { this.Clear(); this.Sign = enumSign.Positive; } } else { AbsoluteAddTo(num); } }
public void MultiplyBy(BigNumber num) { BigNumber thisOriginal = new BigNumber(); thisOriginal.Digits = this.Digits; for (int index = 0; index < num.Count; index++) { if (num[index] > 0) { MultiplyRecurive(index, num[index], thisOriginal); } } if (num.Sign != this.Sign) { this.Sign = enumSign.Negative; } else if (this.Sign == enumSign.Negative) { this.Sign = enumSign.Positive; } }