Ejemplo n.º 1
0
 private void _CopyHead(RawNum source, int length, RawNum dest)
 {
     dest.Clear();
     for (int i = 1; i <= length; i++)
     {
         int sourceIndex = source.Size - i;
         var sourceDigit = source.Digits[sourceIndex];
         dest.Digits.Add(sourceDigit);
     }
 }
Ejemplo n.º 2
0
        private void _MultiplyByDigit(RawNum num, UInt32 digit, RawNum dest)
        {
            dest.Clear();
            UInt32 overfit = 0;

            foreach (UInt32 d in num.Digits)
            {
                UInt32 mulRes = d * digit + overfit;
                overfit = mulRes >> 16;
                dest.Digits.Add(mulRes & UInt16.MaxValue);
            }

            if (overfit > 0)
            {
                dest.Digits.Add(overfit);
            }
        }