public static void ConvertToAlphabetic(StringBuilder sb, double val, char firstChar, int totalChars) {
Debug.Assert(1 <= val && val <= MaxAlphabeticValue);
Debug.Assert(Math.Pow(totalChars, MaxAlphabeticLength) >= MaxAlphabeticValue);
char[] letters = new char[MaxAlphabeticLength];
int idx = MaxAlphabeticLength;
int number = (int)val;
while (number > totalChars) {
int quot = --number / totalChars;
letters[--idx] = (char)(firstChar + (number - quot * totalChars));
number = quot;
}
letters[--idx] = (char)(firstChar + --number);
sb.Append(letters, idx, MaxAlphabeticLength - idx);
}