2 votos

Restablecer o fijar determinados bits de un número binario.

Hola, alguien puede ayudarme a entender cómo establecer o descansar ciertos bits. Creo que se conoce como enmascaramiento, pero no estoy seguro de cómo proceder. Agradecería cualquier ayuda en mis estudios. La pregunta es:

Dados los números a) 01111001 y b) 10001010.

  1. ¿Qué número binario de 8 bits utilizarías para RESTABLECER los bits 6 y 0 del número a) y qué operación lógica utilizarías?

  2. ¿Qué número binario de 8 bits utilizarías para FIJAR los bits 5 y 2 del número b) y qué operación lógica utilizarías?

0voto

Stanley F. Puntos 119

Lo asumo:

  • restablecer significa poner un bit en $0$
  • set significa poner un bit en $1$
  • los números son little endian

Para restablecer un bit, hay que utilizar el $AND$ con una máscara en la que el bit afectado se pone a $0$ y todos los demás bits se ponen a $1$ :

    01111001
AND 11011110
------------
    01011000

Para fijar un bit, hay que utilizar el $OR$ con una máscara en la que el bit afectado se pone a $1$ y todos los demás bits se ponen a $0$ :

   10001010
OR 00010010
-----------
   10011010

0voto

zzuussee Puntos 8

Considere la operación XOR, o $\hat{\lor}$ , dada sobre la siguiente tabla de verdad para dos variables binarias:

$$\begin{array}{|c|c|c|c|} \hline p& q& p\hat{\lor}q\\ \hline 0& 0& 0\\ \hline 0& 1& 1\\ \hline 1& 0& 1\\ \hline 1& 1& 0\\ \hline \end{array}$$

Puede generalizar estas operaciones para las cadenas de bits. ¿Puedes aplicar esta operación aquí? ¿Cómo se puede establecer o restablecer un bit en una cadena? Juega un poco con esto (en serio, esta es la clave para conseguir una intuición) antes de comprobar la pista:

1. $10000010$ 2. $00100100$

EDITAR: Ya que has visto mi respuesta, quiero añadir algo respecto a la respuesta de Stanley F., de la que no he querido hablar antes para no "estropear la sorpresa":

Por supuesto, se puede plantear este problema con casi cualquier operación binaria clásica (o al menos con cualquier conjunto funcionalmente completo). Sin embargo, la ventaja de utilizar la o exclusiva es, por supuesto, que

  1. Se aplica a la fijación y eliminación de bits.
  2. Los bits a modificar corresponden en su posición a los set-ones de la cadena correspondiente.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X