/// <summary>
 /// Конструктор класса
 /// </summary>
 /// <param name="reversBinaryNumber">Бинарное число в обратном коде</param>
 public AdditionalBinaryNumber(ReversBinaryNumber reversBinaryNumber)
 {
     if (reversBinaryNumber.Sign() == '0')
         this._code = reversBinaryNumber.Code;
     else
     {
         this._code = reversBinaryNumber.Code;
         Increment();
     }
 }
        /// <summary>
        /// Сложение бинарного числа в обратном коде с бинарным числом в обратном коде
        /// </summary>
        /// <param name="number">Число, которое прибавляется к данному</param>
        /// <returns>При переполнении возвращает false, иначе true</returns>
        public override bool Add(ReversBinaryNumber number)
        {
            int transfer = 0;

            char[] result = Additional(this._code, number.Code, out transfer);//Если был перенос, transfer = 1

            if (transfer == 1)
                result = Additional(result, new ReversBinaryNumber(1).Code, out transfer);//прибавляем единицу к младшему разряду

            bool hasOv = hasOverflow(this.Sign(), number.Sign(), result[0]);

            if (!hasOv)//или добавить выброс исключения при переполнении
                _code = result;

            return !hasOv;
        }