由于某些奇怪的原因,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;
}
Run Code Online (Sandbox Code Playgroud)
未经测试,但你应该能够从这里弄清楚.
Fly*_*wat -3
string foo = Convert.ToString(myint,base);
Run Code Online (Sandbox Code Playgroud)
http://msdn.microsoft.com/en-us/library/14kwkz77.aspx
编辑:我的错,除非您传入指定的基数(2、8、10 和 16),否则这将引发参数异常
如果你想使用不同的底座,你可能会很满意(但为什么???)。
| 归档时间: |
|
| 查看次数: |
1050 次 |
| 最近记录: |