由于某些奇怪的原因,Convert.ToString()只允许基数值为2,8,10和16; 是否有一些不明确的方式提供2到16之间的任何基础?
可能会消除某人输入7而不是8,因为任意碱基的使用很少(但不是不存在).
这是一个可以执行任意基本转换的示例方法.如果您愿意,可以使用它,没有限制.
string ConvertToBase(int value, int toBase) { if (toBase < 2 || toBase > 36) throw new ArgumentException("toBase"); if (value < 0) throw new ArgumentException("value"); if (value == 0) return "0"; //0 would skip while loop string AlphaCodes = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; string retVal = ""; while (value > 0) { retVal = AlphaCodes[value % toBase] + retVal; value /= toBase; } return retVal; }
未经测试,但你应该能够从这里弄清楚.