Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Operaciones con Bits

Estas en el tema de Operaciones con Bits en el foro de Visual Basic clásico en Foros del Web. Hola, soy bastante nuevo es esto y necesito saber como puedo "sensar" el valor de un bit dentro de un entero, para asignarlo a otro ...
  #1 (permalink)  
Antiguo 11/02/2006, 21:53
 
Fecha de Ingreso: diciembre-2005
Mensajes: 28
Antigüedad: 18 años, 5 meses
Puntos: 0
Operaciones con Bits

Hola, soy bastante nuevo es esto y necesito saber como puedo "sensar" el valor de un bit dentro de un entero, para asignarlo a otro varible.

Enmascaro 8 bits en un entero y ahora necesito asignar a 8 variables diferentes el valor de cada bit (0-7)

Por ejemplo :

Ent = 7, tiene los bits 1,2,3 con valor de uno.

Necsito saberlo para poder asignar el valor del bit a una variable.

Gracias por su ayuda.
  #2 (permalink)  
Antiguo 12/02/2006, 04:35
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años, 1 mes
Puntos: 17
VB6 no incorpora operadores que actúen sobre bits. Deberás hacerlo a mano con matemáticas simples, pasando un número a binario y guardar esos valores.
  #3 (permalink)  
Antiguo 01/03/2006, 07:20
 
Fecha de Ingreso: febrero-2006
Mensajes: 2
Antigüedad: 18 años, 2 meses
Puntos: 0
Si empleas los operadores AND, OR y XOR con datos númericos (Incluidos los hexadecimales &H...), lo que se realiza es un AND, OR, XOR a nivel de bit.

Así, si quieres saber si la variable NumX tiene un bit activado; Por ejemplo el &H20 = 32, que sería el 7º bit (Desde la derecha) puedes hacer:

if (32 AND NumX) = 32 then...

Donde el parentesis es importante, dado que la precedencía de operadores sin él, haría que se ejecutara primero el igual (NumX = 32) y así, no identificariamos si se cumple que NumX tenga activado el bit del 32.

Cierto que VB no incorpora facilidades para el manejo de bits, pero bueno, para casos puntuales, con esto se puede salir del aprieto.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:03.