[ VB.NET ] Duda con &H1, &H2, &H4...

Iniciado por izra76, 6 Septiembre 2012, 00:26 AM

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

izra76

Saludos.
Trato de aprender vb.net con ayuda de un libro y en el capítulo en el que estoy viene el siguiente código el cual no comprendo del todo y no he sabido como buscar en Google mi duda, a ver si pueden ayudarme un poco con la explicación...

Código (vbnet) [Seleccionar]

Module ejercicio4
    Public Sub Visualizar(ByVal car As Byte)
        Dim i, bit As Integer
        For i = 7 To 0 Step -1
            If ((car And (1 * (2 ^ i))) <> 0) Then
                bit = 1
            Else
                bit = 0
            End If
            System.Console.Write(bit)
        Next
        System.Console.WriteLine()
    End Sub

    'ESTA ES LA PARTE QUE NO COMPRENDO DEL TODO...
    Public Function HaceAlgo(ByVal car As Byte) As Byte
        Return ((car And &H1) * (2 ^ 7)) Or ((car And &H2) * (2 ^ 5)) Or _
               ((car And &H4) * (2 ^ 3)) Or ((car And &H8) * (2 ^ 1)) Or _
               ((car And &H10) \ (2 ^ 1)) Or ((car And &H20) \ (2 ^ 3)) Or _
               ((car And &H40) \ (2 ^ 5)) Or ((car And &H80) \ (2 ^ 7))
    End Function

    Sub Main()
        Dim car As Byte
        System.Console.Write("Introduce un caracter unicode: ")
        car = System.Console.Read()
        Visualizar(car)
        System.Console.WriteLine("Caracter resultante: ")
        car = HaceAlgo(car)
        Visualizar(car)
        System.Console.ReadLine()
        System.Console.ReadLine()
    End Sub

End Module


Que significa &H1, &H2... ? Que operación se realiza en ((car And &H1) * (2 ^ 7)) ? Y por que hay varios... ?

Gracias por su ayuda :)

Keyen Night

#1
&HX, es la forma de expresar números hexadecimales, osea en base 16 y no en base 10 como el sistema que usamos los humanos que comprende del 0-9; este comprende del 0-9 y sigue A-F; con la calculadora de Windows puedes hacer las conversiones que te convengan igual con el compilador también puede mostrarte el valor decimal...

El sub "Visualizar" expresa un número byte en forma binaria y "HaceAlgo" parece hacer algún tipo de conversión...

Aunque pierde un poco el sentido porque dice "Introduce un caracter unicode: " que es una codificación que soporta hasta 4 bytes por carácter y se está recibiendo el valor en un solo byte...
La Fé Mueve Montañas...
                                    ...De Dinero

La programación es más que un trabajo es más que un hobby es una pasión...

izra76

Cita de: Keyen Night en  6 Septiembre 2012, 03:50 AM"HaceAlgo" parece hacer algún tipo de conversión...

Eso es exactamente lo que quiero saber :P

Bueno igual muchas gracias por tu ayuda, seguiré adelante con el libro sin preocuparme por eso ahora :D