Test Foro de elhacker.net SMF 2.1

Programación => Programación General => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: Jirp96 en 8 Mayo 2011, 21:33 PM

Título: "Ayuda" con Codigo(Pasar de Decimal a Binario)
Publicado por: Jirp96 en 8 Mayo 2011, 21:33 PM
Hola, este es mi primer post aqui(segundo con el de presentacion ;D ) y queria hacer una pregunta sobre un codigo que hice(es una funcion para pasar un numero de decimal a binario)
Esta es la funcion(la hice en base a esto: http://es.wikipedia.org/wiki/Sistema_binario (http://es.wikipedia.org/wiki/Sistema_binario)):

Código (vbnet) [Seleccionar]
    Function DecToBin(ByVal numDec As Integer) As String
        Dim ret As String = ""
        Dim arrRet() As Char

        While Not numDec = 1
            ret = ret & CStr(numDec Mod 2)
            numDec = numDec \ 2
        End While

        ret = ret & "1"
        ReDim arrRet(ret.Length())
        arrRet = ret.ToCharArray
        Array.Reverse(arrRet)
        Return arrRet
    End Function


Se que debe haber mil y una cosas que se pueden cambiar en el codigo, pero no se cuales son ;D
por cierto, tengo otra duda(sobre la misma funcion):
-Si yo llamo la funcion asi:
Código (vbnet) [Seleccionar]
        Dim n As Integer
        Console.WriteLine("Introduce un numero en Decimal para Pasarlo a Binario:")
        n = CInt(Console.ReadLine())

No hay ningun problema, y me devuelve el resultado correctamente, pero si llamo la funcion asi:
Código (vbnet) [Seleccionar]
Dim n As Integer
        For n = 0 To 10
            Console.WriteLine("El numero en Binario es: " & DecToBin(n))
        Next

        Console.ReadLine()

No me devuelve ningun resultado y se queda "colgado" el visual basic...
Alguien sabe porque?
Uso Visual Basic Express 2005(.NET framework 2.0) y WinXP
Aclaro tambien que soy "novato" en la programacion, y que
Saludos, y muchas gracias por adelantado a los que se tomaron el tiempo de leer...
pd: Si el codigo es muy largo o si no lo postee bien pido disculpas...
Título: Re: "Ayuda" con Codigo(Pasar de Decimal a Binario)
Publicado por: seba123neo en 8 Mayo 2011, 21:47 PM
Hola, con una sola linea podes convertir de decimal a binario o a cualquier base.

Código (vbnet) [Seleccionar]
MsgBox(Convert.ToString(10234, 2))

saludos.

Título: Re: "Ayuda" con Codigo(Pasar de Decimal a Binario)
Publicado por: Jirp96 en 8 Mayo 2011, 22:10 PM
Gracias por el dato seba123neo,
que la verdad que no tenia ni idea de que habia una forma de hacerlo,
y que era tan facil  :xD
igual.... aunque haya otra forma de hacerlo, aprendi algo nuevo asi xD
Título: Re: "Ayuda" con Codigo(Pasar de Decimal a Binario)
Publicado por: raul338 en 8 Mayo 2011, 22:12 PM
De todas formas es porque empiezas por 0 en el for en el primer codigo, por lo que al dividir por 2 da siempre 0, y el bucle termina cuando el numero es 1, por lo que entra en un bucle infinito :D (tambien tuve que hacer esa funcion recientemente por cuestiones de comodidad)
Título: Re: "Ayuda" con Codigo(Pasar de Decimal a Binario)
Publicado por: Jirp96 en 8 Mayo 2011, 22:20 PM
Muchas gracias por la aclaracion del bucle For, raul338,
la verdad es que no lo habia notado :silbar: