una todas las funciones extraer entero ejemplos convertir caracteres cadena c# base

todas - ¿Hay alguna forma incorporada de convertir un entero en una cadena(de cualquier base) en C#?



itoa en c (6)

Convert.ToString () solo permite valores base de 2, 8, 10 y 16 por alguna razón impar; ¿Hay alguna forma oscura de proporcionar una base entre 2 y 16?


Probablemente para eliminar a alguien escribiendo un 7 en lugar de un 8, ya que los usos para bases arbitrarias son pocos (pero no inexistentes).

Aquí hay un método de ejemplo que puede hacer conversiones básicas arbitrarias. Puede usarlo si lo desea, sin restricciones.

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; }

No probado, pero deberías ser capaz de resolverlo desde aquí.




//untested -- public domain // if you do a lot of conversions, using StringBuilder will be // much, much more efficient with memory and time than using string // alone. string toStringWithBase(int number, int base) { if(0==number) //handle corner case return "0"; if(base < 2) return "ERROR: Base less than 2"; StringBuilder buffer = new StringBuilder(); bool negative = (number < 0) ? true : false; if(negative) { number=-number; buffer.Append(''-''); } int digits=0; int factor=1; int runningTotal=number; while(number > 0) { number = number/base; digits++; factor*=base; } factor = factor/base; while(factor >= 1) { int remainder = (number/factor) % base; Char out = ''0''+remainder; if(remainder > 9) out = ''A'' + remainder - 10; buffer.Append(out); factor = factor/base; } return buffer.ToString }


string foo = Convert.ToString(myint,base);

http://msdn.microsoft.com/en-us/library/14kwkz77.aspx

EDITAR : Mi mal, esto arrojará una excepción de argumento a menos que pase las bases especificadas (2, 8, 10 y 16)

Tu probablemente SOL si quieres usar una base diferente (¿pero por qué ???).


Lo siento, no estoy respondiendo tu pregunta, pero ... La elección de las bases no es arbitraria. Tu PC está convirtiendo constantemente desde la base 2 (es un sistema binario interno) a la base 10 legible por humanos. La base 8 y 16 son muy fáciles de convertir ay desde la base 2 y se usan a menudo para que una computadora Y un humano puedan leer el valor ( por ejemplo, GUID)