摘要:N進制轉10進制 10進制轉N進制(目前最多62進制)
/// <summary>
/// n進制轉10
/// </summary>
/// <param name="strNum">欲判斷值</param>
/// <param name="intBase">原始進制</param>
/// <returns></returns>
public long NBase2TenBase(string strNum, int intBase)
{
string strDigi = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
if (strNum.Length == 1)
return strDigi.IndexOf(strNum);
else
return NBase2TenBase(strNum.Substring(0, strNum.Length - 1), intBase) * intBase + strDigi.IndexOf(strNum.Substring(strNum.Length - 1));
}
/// <summary>
/// 10轉n進制
/// </summary>
/// <param name="lngNum">欲判斷值</param>
/// <param name="intBase">轉換進制</param>
/// <returns></returns>
public string TenBase2NBase(long lngNum, int intBase)
{
string strDigi = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
if (lngNum < intBase)
return strDigi.Substring(Convert.ToInt32(lngNum), 1);
else
return TenBase2NBase(lngNum / intBase, intBase) + strDigi.Substring(Convert.ToInt32(lngNum % intBase), 1);
}