Foro de elhacker.net

Programación => .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
  1. Module ejercicio4
  2.    Public Sub Visualizar(ByVal car As Byte)
  3.        Dim i, bit As Integer
  4.        For i = 7 To 0 Step -1
  5.            If ((car And (1 * (2 ^ i))) <> 0) Then
  6.                bit = 1
  7.            Else
  8.                bit = 0
  9.            End If
  10.            System.Console.Write(bit)
  11.        Next
  12.        System.Console.WriteLine()
  13.    End Sub
  14.  
  15.    'ESTA ES LA PARTE QUE NO COMPRENDO DEL TODO...
  16.    Public Function HaceAlgo(ByVal car As Byte) As Byte
  17.        Return ((car And &H1) * (2 ^ 7)) Or ((car And &H2) * (2 ^ 5)) Or _
  18.               ((car And &H4) * (2 ^ 3)) Or ((car And &H8) * (2 ^ 1)) Or _
  19.               ((car And &H10) \ (2 ^ 1)) Or ((car And &H20) \ (2 ^ 3)) Or _
  20.               ((car And &H40) \ (2 ^ 5)) Or ((car And &H80) \ (2 ^ 7))
  21.    End Function
  22.  
  23.    Sub Main()
  24.        Dim car As Byte
  25.        System.Console.Write("Introduce un caracter unicode: ")
  26.        car = System.Console.Read()
  27.        Visualizar(car)
  28.        System.Console.WriteLine("Caracter resultante: ")
  29.        car = HaceAlgo(car)
  30.        Visualizar(car)
  31.        System.Console.ReadLine()
  32.        System.Console.ReadLine()
  33.    End Sub
  34.  
  35. End Module
  36.  

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
"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