Es allí una manera de asignar un valor binario para una variable VB? Todas las opciones obvias no funcionan. He intentado adornar con &B, anexando con b, pero nada parece funcionar. No estoy teniendo mucha suerte en su búsqueda. Yo no necesidad esto para mi aplicación, pero estoy bien, solo por curiosidad, de modo que las soluciones alternativas no son necesarias.

[Editar]
Para una aclaración, lo que estaba buscando (que no parece ser posible) era cómo asignar un literal número binario a una variable, de una manera similar en la que se puede asignar a un hex o número octal. Yo estaba buscando una más visualmente atractiva forma de asignar valores a una bandera enum.

Código:

Dim num as Integer = &H100ABC       'Hex'
Dim num2 as Integer = &O123765      'Octal'

Dim myFantasy as Integer = &B1000   'What I would like to be able to do'
Dim myReality as Integer = 2 ^ 3    'What I ended up doing'

OriginalEl autor Wes P | 2009-03-18

5 Comentarios

  1. 17

    Me puede apuñalar a mí mismo después de esta:

    Convert.ToInt32("1100101", 2);

    En una nota más seria (darse cuenta de que ha actualizado la pregunta), para la bandera enums lo que usted desea es el desplazamiento a la izquierda del operador (<<):

    Dim myReality as Integer          = 1 << 0   // 1
    Dim myAlternateReality as Integer = 1 << 1   // 2
    Dim myParallelUniverse as Integer = 1 << 2   // 4
    ...

    y así sucesivamente hasta el 31.

    +1 – para una respuesta correcta. Me dio una risa, Gracias 🙂
    +1 «corre aullando en la noche»

    OriginalEl autor

  2. 3

    Por desgracia, lo mejor que puedes hacer es Hex:

    Dim x As Long = &H1234ABCD

    OriginalEl autor

  3. 2

    Supongo que te refieres a lo que Juan de Rasch proporcionado una respuesta. Usted tiene una cadena compuesta de ceros y unos que desea convertirse en algún tipo de variable.

        Dim b As String = "10101"
        Dim i As Integer = 73
        Dim s As String
        s = Convert.ToString(i, 2) 's contains the binary representation of 73 - 1001001
        i = Convert.ToInt32(b, 2) 'i now =  21

    y también puede utilizar estos métodos para hexadecimal(16) y octal(8).

    también podrías hacer algo como esto

        Dim i As Integer = 6
    If (i And _bi.t0) = _bi.t0 OrElse (i And _bi.t1) = _bi.t1 Then
    'bit 0 or 1 on
    End If
    Enum _bi As Integer
    t0 = CInt(2 ^ 0)
    t1 = CInt(2 ^ 1)
    t2 = CInt(2 ^ 2)
    t3 = CInt(2 ^ 3)
    t4 = CInt(2 ^ 4)
    t5 = CInt(2 ^ 5)
    t6 = CInt(2 ^ 6)
    t7 = CInt(2 ^ 7)
    t8 = CInt(2 ^ 8)
    t9 = CInt(2 ^ 9)
    t10 = CInt(2 ^ 10)
    t11 = CInt(2 ^ 11)
    t12 = CInt(2 ^ 12)
    t13 = CInt(2 ^ 13)
    t14 = CInt(2 ^ 14)
    t15 = CInt(2 ^ 15)
    t16 = CInt(2 ^ 16)
    t17 = CInt(2 ^ 17)
    t18 = CInt(2 ^ 18)
    t19 = CInt(2 ^ 19)
    t20 = CInt(2 ^ 20)
    t21 = CInt(2 ^ 21)
    t22 = CInt(2 ^ 22)
    t23 = CInt(2 ^ 23)
    t24 = CInt(2 ^ 24)
    t25 = CInt(2 ^ 25)
    t26 = CInt(2 ^ 26)
    t27 = CInt(2 ^ 27)
    t28 = CInt(2 ^ 28)
    t29 = CInt(2 ^ 29)
    t30 = CInt(2 ^ 30)
    End Enum

    OriginalEl autor

  4. 1

    o algo descriptivo

    Enum _SerialPortPins As Integer
    RTS = CInt(2 ^ 4)
    CTS = CInt(2 ^ 5)
    DSR = CInt(2 ^ 6)
    DCD = CInt(2 ^ 8)
    DTR = CInt(2 ^ 20)
    RI = CInt(2 ^ 22)
    End Enum

    OriginalEl autor

  5. 1

    El uso de un comentario?

    Dim myFantasy as Integer = 2^3 '00000000-00001000

    OriginalEl autor

Dejar respuesta

Please enter your comment!
Please enter your name here