Buenas, estoy haciendo un ejercicio para clase en C# pero tengo un error y no sé como resolverlo, a ver si me podéis echar un cable!
Es un programa en el que introduciendo un número en decimal, te da su equivalente en binario.
He hecho esto:
[code]class Program
{
static void Main(string[] args)
{
int numero;
string resultado = "";
string resultadoInverso;
int resto;
Console.Write("Introduzca un número en sistema decimal, y se le mostrará en binario :");
numero = Convert.ToInt32(Console.ReadLine());
do
{
resto = (numero % 2);
resultado = resultado + resto;
numero = (numero / 2);
}
while ((numero / 2) != 0);
resultadoInverso = resultado;
Console.WriteLine("El número {0} en binario es {1}", numero, resultadoInverso);
}
}[/code]
El caso es que el programa se me queda una operación por detrás y no veo donde está el fallo.
Por ejemplo, el número 5, para conseguir su binario juntamos todos los restos que obtengamos de dividir el número entre 2, hasta que el cociente sea cero.
En este caso obtendríamos tres restos por el camino, "1", "0" y "1", 5 en binario es 101, pero el programa solamente me devuelve "10", siempre se come la última cifra y no sé por qué.
Y por último, el resultado final se obtiene dando la vuelta a la cadena, pero no sé como hacerlo, en resultadoInverso iría la cadena invertida, ¿Cómo se invierte una cadena?.
Gracias de antemano.
Un saludo.