Descomponer un valor HEX para leerlo Bit por Bit

#1
Hola Amigos, buenas noches a todos.

Quiero preguntar, más bien pedir, una mano para hacer lo siguiente:
Yo leo un valor HEX de la memoria, por ejemplo 0x56, y ese valor HEX necesitaría convertirlo a binario y leerlo Bit a Bit para manipular cada bit según sea 1 o 0.

No tengo idea de cómo hacer esto porque programo muy básico y por eso recurro al foro, si alguien sería tan amable de tomarse un minuto y pasarme la rutina para lograr esto, le estaría muy agradecido.

Saludos y mil gracias

Julio
 
Última edición:
#3
Quiero preguntar, más bien pedir, una mano para hacer lo siguiente:
Yo leo un valor HEX de la memoria, por ejemplo 0x56, y ese valor HEX necesitaría convertirlo a binario y leerlo Bit a Bit para manipular cada bit según sea 1 o 0.

No tengo idea de cómo hacer esto porque programo muy básico y por eso recurro al foro, si alguien sería tan amable de tomarse un minuto y pasarme la rutina para lograr esto, le estaría muy agradecido.
Desafortunadamente no especificas el lenguaje de programación que usas.
Pero mira si esta rutina te sirve para lo que quieres hacer. ByteToBin
En todo caso, la puedes convertir a otro lenguaje, pues es sencilla.

Al parecer la rutina expuesta en ese post, cumple con lo que mencionas.
Seguramente tengas que realizar modificaciones para el uso que le piensas dar, pero esa es la idea.

Suerte.
 
#4
Hola y gracias por la ayuda ...

Estoy usando C con un Atmega48 (respondiendo a Proteus7) y para D@rkbytes diria que por lo que vi a simple vista es lo que estoy buscando. Habia buscado en el foro, pero con ese titulo jamas iba a imaginar que era como lo que necesito yo .... :oops: ... así que mil gracias. Mañana lo pruebo y les mando mi feedback.

Gracias por la ayuda, que descansen.
 
#5
para manipular 1 bit en un registro de la memoria puedes usar mascaras

que son funciones aritmeticas logicas AND, OR, XOR, NOT

digamos que tengo BA

que en binario es: 1011 1010
y lo que queremos es meter un BIT en la casilla 3 de A
1010 OR 100

queda asi 1110

la idea es usar las fuciones propias del CPU sin hacer tanto enbrollo de algoritmos raros en C

no olvides que C tambien podemos ROTAR >> y <<

quedando asi algoritmos de ROTAR BITS

ejemplo

digamos que tenemos una variable con 1 solo bit llamada variable y la queremos manipular un registro de 8 bits llamado registro y queremos que quede cargado con 00001000
quedaria asi:

char variable;
char registro;

variable=1;
registro=variable<<4;

con los mayor que y menor que hacemos funciones de rotar el numero de veces un registro o un bit asi ahorramos tiempo en hacer algoritmos ya que es una funcion propia del CPU
 
#8
Gracias muchachos ...

En base a lo que me aportaron ustedes y esto otro que envío aqui, que es más de lo mismo pero lo pongo por si a alguie más le ayuda, pude resolver el asunto.
http://www.programmingsimplified.com/c/source-code/c-program-convert-decimal-to-binary

Muchas gracias
hola amigaso...bueno .. mira ..... yo encontre hace tiempo un tutorial para AVR ...... el asunto que esta para ASM .. pero trata justamente esto de las converciones ..... espero que te sea util http://www.avrbeginners.net/ :apreton:
 

Temas similares

Arriba