【プログラミング】n進数の変換
n進数の変換
10進数からn進数の変換
基数で割る⇒桁を1つ下げる
余り⇒1番したの位の数字
下から足していけばn進数に変換される。
n進数から10進数の変換
static class Utility
{
private static readonly int AlphabetRadix = 26; //26進数
internal static string NumberToAlphabet(int number)
{
var alphabet = "";
do
{
int remainder = (number - 1) % AlphabetRadix;
alphabet = (char)('A' + remainder) + alphabet;
number = (number - 1) / AlphabetRadix;
} while (number > 0 );
return alphabet;
}
internal static int AlphabetToNumber(string alphabet)
{
var number = 0;
var numberOfDigits = alphabet.Length - 1;
for (int i = 0; i < alphabet.Length; ++i)
{
var exp = System.Math.Pow(AlphabetRadix, numberOfDigits--);
var result = (int)(alphabet[i] - 'A') + 1;
number += result * (int)exp;
}
return number;
}
}