Autor Tema: Pasaje de binario a decimal y decimal a binario en VB6  (Leído 9754 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Pasaje de binario a decimal y decimal a binario en VB6
« en: 04 de Agosto de 2006, 20:53:52 »
Aqui les dejo unas rutinas que he hecho y comentado para que logren comprenderlas.

Espero que les sirva.

Código: Visual Basic
  1. Private Function Bin2Dec(NumBinario As String) As Long
  2.  
  3. 'Declarar variable LOCAL a utilizar
  4. Dim Recorre As Integer
  5. 'Asegurarse de 3 cosas aqui: Que la longitud de la cadena ingresada sea mayor a cero, que el valor ingresado sea numerico y que no haya signos negativos.
  6. 'Si no se cumple al menos una de estas tres condiciones, la funcion devolvera cero.
  7. If Len(NumBinario) < 1 Or Not IsNumeric(NumBinario) Or NumBinario < 0 Then Exit Function
  8.  
  9. 'Recorrer caracter por caracter usando un For
  10. For Recorre = 0 To Len(NumBinario) - 1
  11.     'Recorrer caracter por caracter. Establecer la condicion que el caracter seleccionado debe valer 1.
  12.    'En caso que se cumpla la condicion sumar al resultado parcial 2 elevado a la posicion del caracter seleccionado.
  13.    If Mid(NumBinario, Len(NumBinario) - Recorre, 1) = "1" Then Bin2Dec = Bin2Dec + 2 ^ Recorre
  14. Next
  15.  
  16. End Function
  17.  
  18. Private Function Dec2Bin(NumDecimal As Integer) As String
  19.  
  20. 'Repetir siempre y cuando NumDecimal sea mayor a 1
  21. Do While NumDecimal > 1
  22.     'El resultado parcial de la función es igual al resto de la división mas el resultado parcial anterior.
  23.    Dec2Bin = NumDecimal Mod 2 & Dec2Bin
  24.     'Dividir NumDecimal por dos y eliminar la parte decimal utilizando la instruccion FIx.
  25.    NumDecimal = Fix(NumDecimal / 2)
  26. Loop
  27.  
  28. 'El resultado de la funcion es igual al resto de la ultima division mas el resultado obtenido durante el do while
  29. Dec2Bin = NumDecimal & Dec2Bin
  30.  
  31. End Function


Ejemplos de USO:

Para mostrar en un cuadro de mensaje el numero decimal partiendo de un binario:
msgbox bin2dec("10100101")

Para mostrar en un cuadro de mensaje el numero binario partiendo de un decimal:
msgbox dec2bin(129)

Saludos.
« Última modificación: 06 de Agosto de 2006, 12:49:21 por BrunoF »
"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.

Desconectado ehureka

  • PIC12
  • **
  • Mensajes: 57
Re: Pasaje de binario a decimal y decimal a binario en VB6
« Respuesta #1 en: 05 de Agosto de 2006, 22:45:58 »
Holis, Muchas graias era lo que esta buscando te agradezco de corazon, prometo leer mas y estudiar... muchas gracias
 :-/ :-/ :-/
Saludos BrunoF
de Rebeca


Desconectado atlasdelcarinakeel

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 277
Re: Pasaje de binario a decimal y decimal a binario en VB6
« Respuesta #2 en: 06 de Agosto de 2006, 11:06:11 »
Muchas gracias BrunoF, esas rutinas siempre son necesarias.

Grac ias.  :mrgreen:
Si tienes un problema y tiene solucion, para que te preocupas? y si no tiene solucion, para que te preocupas?

Desconectado rodstar

  • PIC10
  • *
  • Mensajes: 8
Re: Pasaje de binario a decimal y decimal a binario en VB6
« Respuesta #3 en: 30 de Mayo de 2011, 11:40:57 »
buscaba otra cosa parecida y entontré esto, gracias, me ahorraste 5 minutos de programación