public static LongNumber operator *(LongNumber firstNumber, long seconNumber) { if (firstNumber == null) { return null; } else { LongNumber newNumber = new LongNumber(firstNumber); newNumber.Multiply(seconNumber); return newNumber; } }
private void Multiply(long number) { if (this.A != null) { this.A.Multiply(number); } if (number / X != 0) { LongNumber longNumber = new LongNumber(number); longNumber.Multiply(this.B); this.B = 0; this.AddNumber(longNumber); } else { checked { long multiplicationResult = this.B * number; this.B = multiplicationResult % X; if (multiplicationResult / X != 0) { if (this.A == null) { this.A = new LongNumber(multiplicationResult / X); } else { this.A.AddNumber(multiplicationResult / X); } } } } }