public override uint[] ToString(uint[] digits, uint length, uint numberBase, ref uint outputLength)
{
uint[] outputArray = base.ToString(digits, length, numberBase, ref outputLength);
// Maybe base method already converted this number
if (outputArray != null) return outputArray;
// Create an output array for storing of number in other base
outputArray = new uint[outputLength + 1];
// Make a copy of initial data
uint[] digitsCopy = new uint[length];
Array.Copy(digits, digitsCopy, length);
// Calculate output numbers by dividing
uint outputIndex;
for (outputIndex = 0; length > 0; ++outputIndex)
{
length = DigitOpHelper.DivMod(digitsCopy, length, numberBase, digitsCopy, out outputArray[outputIndex]);
}
outputLength = outputIndex;
return outputArray;
}