Buscar este blog

martes, 28 de junio de 2011

Cómo convertir a un número decimal en un número binario en una cadena en VISUAL BASIC

 En números decimales (base diez números), cada posición de decimal es una potencia de 10. Dígitos decimales pueden tener valores desde cero hasta nueve. En números binarios (base-dos números), cada posición de decimal es una potencia de dos. Dígitos binarios sólo pueden tener valores de 0 ó 1.

  1. Inicie un proyecto nuevo de Visual Basic. Se creará Form1 de manera predeterminada.
  2. Agregue dos cuadros de texto a Form1. Asegúrese de cada cuadro de texto en más de 32 caracteres de ancho.
  3. Haga doble clic en el cuadro de texto Text1 para abrir su ventana de código. Elija el evento Change en el cuadro procedimiento. Agregue el código siguiente al evento cambiar Texto1: 

Programa de ejemplo

  1. Inicie un proyecto nuevo de Visual Basic. Se creará Form1 de manera predeterminada.
  2. Agregue dos cuadros de texto a Form1. Asegúrese de cada cuadro de texto en más de 32 caracteres de ancho.
  3. Haga doble clic en el cuadro de texto Text1 para abrir su ventana de código. Elija el evento Change en el cuadro procedimiento. Agregue el código siguiente al evento cambiar Texto1:

    Sub Text1_Change ()
     Dim i As Long, x As Long, bin As String
     Const maxpower = 30   ' Maximum number of binary digits supported.
     text1.MaxLength = 9   ' Maximum number of decimal digits allowed.
     text2.Enabled = False ' Prevent typing in second text box.
     bin = ""  'Build the desired binary number in this string, bin.
     x = Val(text1.Text) 'Convert decimal string in text1 to long integer
    
       If x > 2 ^ maxpower Then
         MsgBox "Number must be no larger than " & Str$(2 ^ maxpower)
         text2.Text = ""
         Exit Sub
         End If
    
     ' Here is the heart of the conversion from decimal to binary:
    
     ' Negative numbers have "1" in the 32nd left-most digit:
      If x < 0 Then bin = bin + "1" Else bin = bin + "0"
    
       For i = maxpower To 0 Step -1
       If x And (2 ^ i) Then   ' Use the logical "AND" operator.
        bin = bin + "1"
         Else
          bin = bin + "0"
        End If
        Next
      text2.Text = bin  ' The bin string contains the binary number.
    
       End Sub 
     
    4. Inicie el programa, o presione la tecla F5. Introducir números decimales en el primer cuadro de texto. El número equivalente binario se muestra en el segundo cuadro de texto.


    Nota : este programa convierte los números decimales negativos en formato binario interno dos complemento utilizado por Basic. En ese formato, el dígito binario de más a la izquierda (dígito de treinta segundos en un entero largo) siempre será 1 para un número negativo y 0 para un número positivo.
    Decimal Value    Binary Value
    -----------------------------
    0                00000000000000000000000000000000
    21               00000000000000000000000000010101
    1024             00000000000000000000010000000000
    32767            00000000000000000111111111111111
    32768            00000000000000001000000000000000
    65536            00000000000000010000000000000000
    16777216         00000001000000000000000000000000
    999999999        00111011100110101100100111111111
    -1               11111111111111111111111111111111
    -3               11111111111111111111111111111101
        

La información de este artículo se refiere a:
  • Microsoft Visual Basic 2.0 Standard Edition
  • Microsoft Visual Basic 3.0 Professional Edition
  • Microsoft Visual Basic 2.0 Professional Edition
  • Microsoft Visual Basic 3.0 Professional Edition


Referencia

1 comentario:

  1. http://freespace.virgin.net/s.cowan/vbhowto/how_to/conversions/dec_to_bin.html

    No sería mala idea alejarse de VB para que llegues a saber programar de verdad. ¿Qué tal si haces lo mismo en C o Python para más puntos? (Y con hacer no quiero decir "googlear".)

    Te pongo 6 puntos para la segunda sesión por esta entrada.

    ResponderEliminar