Recientemente he tenido una consulta en la cual el lector me preguntaba una forma de identificar bits activos dentro de un DB.
La idea es identificar los bits y pasar esta información a otro DB donde podamos ver qué bits son los que se han identificado.
Esta clara la aplicación ¿no?
Cómo identificar bits activos
Lo que vamos a hacer, es algo similar a lo que puedes ver en la siguiente imagen:
Como ves, la idea es identificar los bits que están a 1 (en verde) y traducir su dirección a un numero real que se almacenará en orden en otro DB indicando la dirección física que está a 1 en el DB1.
¿Listo? Empecemos a identificar bits activos
He creado un FC al cual le pasamos 3 valores: el DB de booleanas (DB_Bool), el DB de reales (DB_Reales), y el número de booleanas a tratar (NumeroBool).
Lo que haremos será lo siguiente:
- Limpiar el DB destino con un valor que no pueda tomar nunca una dirección. Por ejemplo -1.0. La razón es que el 0.0 sí es una dirección válida.
- Usaremos un índice que vaya diciéndonos qué bit es el que estamos evaluando.
- Rastrearemos bit por bit del DB de booleanas. Si es false, no haremos nada. Si es TRUE copiaremos el índice en el DB destino pero transformando el número de bit en un número real representativo de la dirección.
Por tanto, en el DB destino tendremos los valores que representan los bits puestos a TRUE del primer DB siendo -1.0 el resto de valores.
El vídeo de identificar bits activos
Como en otras ocasiones, la explicación la veremos a través de un vídeo:
Precauciones en el uso
Tienes que tener en cuenta que para usar este FC1 que ves en el vídeo, el número de bits y de reales en los DB origen y destino tienen que ser igual de grandes, ya que podrían estar todos los bits a TRUE.
Lógicamente el DB destino podría ser aún mayor, pero al menos tiene que ser igual.
El número de bits a chequear deberá ser como mucho, igual de grande que el número de bits del DB origen

Comentarios (11)