Este es un mini proyecto que acabo de hacer para convertir un número decimal en binario programado en Visual Basic 6.0, si quieres un articulo más completo sobre conversión de Decimal a Binario de manera manual aquí hay tema al respecto: Convertir Decimales a Binarios de forma manual. adicionalmente si lo que quieres es lo inverso, es decir, el proyecto para convertir de Binario a Decimal lo puedes encontrar aquí: Proyecto: Binario a Decimal en Visual Basic 6.0
En este ejemplo lo que se hace es obtener el Residuo del numero dividido entre 2, lo que nos puede dar un 1 o un 0, ese numero lo guardamos y procedemos a guardar la parte entera de ese mismo numero divido entre 2 (ya guardamos el residuo), y así las veces que sea necesario hasta llegar a un 1 o un 0.
Si por ejemplo el numero es 6 el funcionamiento en seudocódigo seria:
- De Mi Numero, el Residuo de 6 entre 2 = «0» => Guardo como cadena «0»
- Mi Numero ahora será la parte entera de 6 entre 2 = «3»
- De Mi Nuevo Numero, el Residuo de 3 entre 2 = «1» => Guardo lo que tenia («0») concatenado con el «1» = «01»
- Mi Nuevo Nuevo Numero ahora será la parte entera de 3 entre 2 = 1.5 = «1»
- Si mi Numero es «1» o «0» entonces Invierto lo que tenia en Guardado («01») => «10» y le agrego delante el «1» que me sobró => «110»
- 6 Decimal en Binario = 110
Para el código fuente de este proyecto pega 1 Textbox (txtValor), 1 label (lblResultado), 1 botón (cmdEjecutar), y pega el siguiente código
Option Explicit 'Obliga a Declarar las variables Private Sub cmdEjecutar_Click() Dim Residuo As String 'Declaramos el Residuo lblResultado.Caption = "" 'Seteamos el Resultado a vacío Dim Numero As Long 'Declaramos la Variable que manejará el numero Numero = Val(txtValor.Text) ' le damos el valor del textbox a la variable numérica Do Residuo = Numero Mod 2 'Obtenemos el Residuo de la división lblResultado.Caption = lblResultado.Caption & Trim(Str(Residuo)) 'concatenamos el Residuo al final con lo acumulado en el resultado, recuerden que las cadenas se concatenan con el ampersan "&" no con el "+" Numero = Int(Numero / 2) 'Obtenemos el entero de la división Loop Until Numero < 2 'Seguimos haciendo la operación hasta que el numero sea 0 o 1 If (Numero = 1) Then 'verificamos que valor tenemos como ultimo residuo o mejor dicho como ultimo número lblResultado.Caption = "1" & StrReverse(lblResultado.Caption) 'le agregamos el ultimo valor al inicio ya que el valor anterior lo vamos a revertir Else lblResultado.Caption = StrReverse(lblResultado.Caption) 'como no hay nada que concatenar, simplemente revertimos End If End Sub
Así de sencillo es el código para convertir decimal es binario, si tienes problemas en hacerlo aquí el zip con el proyecto junto con el archivo compilado (.exe)
HOLA amigo, crees que me puedas ayudar con una tarea? te pagaria
Muchas gracias me sirvió demasiado :DD
Good
Ayudame a cambiar de normales a romanos, por favor 🙁
como puedo hacer eso en small basic porfa ayudame
Hola. El siguiente método completa con los ceros a la izquierda, es sencillo, solo 7 lineas. Saludos.
Private Sub Text1_Change()
Label1 = «»
For a = 1 To 65535
Label1 = Trim(Str(Sgn(Val(Val(Text1)) And a))) & Label1
a = a * 2 – 1
Next a
End Sub