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)):
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:
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:
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...
Hola, con una sola linea podes convertir de decimal a binario o a cualquier base.
MsgBox(Convert.ToString(10234, 2))
saludos.
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
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)
Muchas gracias por la aclaracion del bucle For, raul338,
la verdad es que no lo habia notado :silbar: