有没有内置的方法将整数转换为C#中的字符串(任何基数)?

Jed*_*dja 6 c# base

由于某些奇怪的原因,Convert.ToString()只允许基数值为2,8,10和16; 是否有一些不明确的方式提供2到16之间的任何基础?

Guv*_*nte 5

可能会消除某人输入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),否则这将引发参数异常

如果你想使用不同的底座,你可能会很满意(但为什么???)。