Test Foro de elhacker.net SMF 2.1

Programación => Programación General => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: izra76 en 6 Septiembre 2012, 00:26 AM

Título: [ VB.NET ] Duda con &H1, &H2, &H4...
Publicado por: izra76 en 6 Septiembre 2012, 00:26 AM
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 :)
Título: Re: [ VB.NET ] Duda con &H1, &H2, &H4...
Publicado por: Keyen Night en 6 Septiembre 2012, 03:50 AM
&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...
Título: Re: [ VB.NET ] Duda con &H1, &H2, &H4...
Publicado por: izra76 en 6 Septiembre 2012, 07:41 AM
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