Operador a nivel de bits

Operador a nivel de bits

Se define como operación binaria un procedimiento entre dos o más variables en base 2 (o también llamado en módulo 2). Desde el punto de vista de la informática, estas operaciones, aunque son puramente matemáticas, ocupan un gran rol en el funcionamiento de la computadora. Esta es la razón por la que se encuentran muchas veces en los microprocesadores y más específicamente en las ALU (Unidades Aritmético Lógicas).

Contenido

Tipos de operaciones

  1. Operaciones Lógicas: Evalúan el resultado de una expresión, dando verdadero o falso.
  2. Operaciones Aritméticas: Realizan alguna de las siguientes operaciones: suma, resta, multiplicación y división
  3. Operaciones Comparativas: Evalúan una doble operación lógica sobre una variable o expresión para determinar si es mayor, menor ó igual a dicho operando
  4. Operaciones de Desplazamiento: Conocidos como «shifts» consisten en alterar el orden de los bits de un registro.
  5. Operaciones de Rotación: similares a los shifts pero aprovechando características del procesador (para rotar los bits en un registro).

Operación Lógica

Una operación lógica evalúa 2 o más operandos mediante uno de los operadores lógicos (OR, AND, XOR,NAND ó NOR). El operador NOT sólo se aplica a un operando o expresión. Las operaciones lógicas sirven para tomar decisiones y en su forma más compleja realizan comparaciones. También son llamadas Operaciones Booleanas en mención al Álgebra de Boole, estas son usualmente: En los lenguajes de programación algunas operaciones no están implementadas toda vez que se consigue al aplicar 2 de ellas. Estas operaciones son típicamente NAND' y NOR que se consiguen mediante AND y OR y después se les aplica una operación NOT.

A nivel de hardware, por cuestiones de rendimiento y espacio pueden o no implementarse cada una de ellas ó sólo AND, OR y NOT, lo cual depende del diseño.

A nivel de hardware existen circuitos lógicos que representan cada una de las operaciones como puertas lógicas. E igualmente existen bloques compuestos únicamente de un tipo determinado de ellos. Al hardware diseñado con estos bloques se les denomina circuitos combinacionales. Los primeros ordenadores se construyeron de este modo.

Operación Aritmética

Las operaciones aritméticas permiten manejar los datos para producir resultados de expresiones. Varios circuitos se fabrican y diseñan para tales propósitos, los más típicos son los de: suma, resta, multiplicación y división otros menos conocidos pero menos frecuentes son el resultado de uno o más de ellos, por ejemplo los contadores, el circuito contador es básicamente un circuito cuya operación principal es la suma, con la particularidad de que al llegar al tope deseado, retorna al valor inicial. Por ejemplo un contador sexagesimal debe volver a valer 00 después de alcanzar el valor 59 (una aplicación típica son los relojes, en las funciones de minutos y horas).

Todo programa necesita hacer infinidad de operaciones de cálculo, que se efectúan con tales operaciones. A nivel de hardware, las operaciones de suma se llevan a cabo con el mismo circuito de suma ligeramente modificado. Las operaciones aritméticas a su vez están compuestas de operaciones lógicas.

Operación Comparativa

Las operaciones de comparación pueden entenderse como operaciones lógicas de mayor complejidad, y normalmente diseñadas y establecidas para la interacción humana. Dadas dos variables me permite conocer si una de ellas es mayor, menor o igual a la otra. El mecanismo utilizado internamente es la resta de las dos variables. A partir de esta operación y, basándose en el estado final de los flags, se determina cómo es la relación entre las dos variables. Hay otras comparaciones posibles, como saber si un valor es par o impar.

Las operaciones de comparación son una forma más elevada de tomar decisiones ya que puede aglutinar complejas expresiones que las utilizadas por simples operaciones lógicas.

En los lenguajes de alto nivel, las comparaciones suelen usarse en los mecanismos de decisión, como son la bifurcación y la ejecución de bucles.

Operación de Desplazamiento

Introducción

  • Aunque es frecuente que incluso en academias, sin más prolegómenos se hable de sistema binario y se pasa a explicar 1 y 0, intentando situar al alumno en la pista de la comprensión de equivalencia matemática con el sistema binario, e incluso enseñando a hallar el equivalente entre el sistema decimal y binario.
  • Resulta frecuente ver que los matemáticos tienen dificultad para aplicar funciones en módulo binario, que no sean puramente aritméticas (es decir algebraicas). Del mismo modo, los que estudian ciencias de la computación parecen desconocer el principio del 1 y el 0 basado en las matemáticas.
  • Todo ello se ve más confuso, por cuanto a nivel electrónico, se habla de tensiones y arbitrariamente se le adjudica un valor u otro, a diferentes tensiones (un rango de tensión, para el valor "1" y un rango de tensión para el valor "0", que sea el voltaje superior, o el inferior uno u otro, se resume en llamarlo lógica positiva, o lógica negativa.
  • Se aclara que el "1" binario es la resultante matemática de la división, en la función: X/X=1 sea cual sea el valor de X, e igualmente el "0" resulta de la resta: X-X=0 sea cual sea el valor de X. Por tanto, no debiera resultar tan abstracto para el matemático aplicar álgebra binaria cual la decimal, ni debiera resultar tan solemne al alumno de computación el origen del "0" y el "1"
  • Hay que aclarar que las bases en un sistema numérico no requieren ser definidas mediante funciones, un sistema binario es aquel que posee 2 signos distintos, en este caso el "1" y el "0" y que debido a sus propiedades es posible aplicar las mismas operaciones que en un sistema decimal.

Suma binaria

La suma binaria se puede realizar cómodamente siguiendo las tres reglas descritas:

  1. Si el número de unos (en sentido vertical) es par el resultado es 0.
  2. Si el número de unos (en sentido vertical) es impar el resultado es 1.
  3. Acarreo tantos unos como parejas (completas) de números 1 haya.

Por ejemplo:

0 + 0 = 0,
0 + 1 = 1,
1 + 0 = 1,
1 + 1 = 0 se pone 0 y se acarrea un 1 a la posición siguiente.

Para sumar 1010 (que en decimal es 10) y 1111 (que en decimal es 15). 10 + 15 = 25


   \begin{array}{rrrrrr}
        &   & 1 & 0 & 1 & 0 \\
      + &   & 1 & 1 & 1 & 1 \\
      \hline
        & 1 & 1 & 0 & 0 & 1 \\
   \end{array}

Resta binaria

Las cuatro reglas básicas para la resta de números binarios son:

0 - 0 = 0
1 – 1 = 0
1 – 0 = 1
0 – 1 = 1 ( con acarreo negativo de 1)

Al restarse números algunas veces se genera un acarreo negativo que pasa a la siguiente columna de la izquierda. En binario solo se produce este acarreo cuando se intenta restar 1 de 0 (4ª regla).

Ejemplo sobre esta situación, restar 011 de 101:

101 – 011 = 010

Detalle de la operación:


   \begin{array}{rrrr}
        & 1 & 0 & 1 \\
      - & 0 & 1 & 1 \\
      \hline
        & 0 & 1 & 0 \\
   \end{array}

  1. en la columna derecha se realiza la resta de 1 – 1 = 0
  2. en la columna central se produce un acarreo negativo de 1 a la columna siguiente (4ª regla) que da lugar a 1 en esta columna, luego 0 - 1 = 1 con acarreo de 1 a la siguiente columna
  3. en la columna izquierda, se resta 1 del acarreo producido en la anterior columna y da como resultado 0, luego se resta 0 – 0 = 0

Multiplicación binaria

La multiplicación binaria es tan sencilla como la decimal, y es que funcionan de la misma manera. Aquí tienen un ejemplo de multiplicación binaria. Supongamos que multipliquemos 10110 por 1001:


   \begin{array}{rrrrrrrr}
        &   & & 1 & 0 & 1 & 1 & 0 \\
      \times

        &   &   &   & 1 & 0 & 0 & 1 \\
      \hline
        &   &   & 1 & 0 & 1 & 1 & 0 \\
        &   & 0 & 0 & 0 & 0 & 0 &   \\
        & 0 & 0 & 0 & 0 & 0 &   &   \\
      1 & 0 & 1 & 1 & 0 &   &   &   \\
      \hline
      1 & 1 & 0 & 0 & 0 & 1 & 1 & 0 \\
   \end{array}

Vamos multiplicando por cada dígito de 1001 el conjunto 10110 y luego procedemos a hacer la suma. Hay otro tipo de procedimientos para realizar esta multiplicación sin signo y es el llamado "Multiplicación por el método de Suma-Desplazamiento".

División binaria

Reglas de la división binaria: 0/0 no permitida, 1/0 no permitida,0/1=0, 1/1=1 .

  • División: Se hace igual como el sistema decimal.

Ejemplo de división binaria: En este ejemplo dividiremos 101101 entre 111:


   \begin{array}{rl}
      \begin{array}{rrrrrr}
        1 & 0 & 1 & 1 & 0 & 1\\
      \end{array}
   &
      \begin{array}{|lll}
          111 \\
         \hline
      \end{array}
   \end{array}

hay que comenzar cogiendo 4 cifras del dividendo para sobrepasar al divisor. Así resulta que 1011 entre 111 toca a 1 (solo puede ser 1 o 0):


   \begin{array}{rl}
      \begin{array}{rrrrrr}
        1 & 0 & 1 & 1 & 0 & 1 \\
        \, \\
      \end{array}
   &
      \begin{array}{|lll}
          111 \\
         \hline
          1
      \end{array}
   \end{array}

1 por 111 es 111:


   \begin{array}{rl}
      \begin{array}{rrrrrr}
        1 & 0 & 1 & 1 & 0 & 1 \\
         & 1 & 1 & 1 
      \end{array}
   &
      \begin{array}{|lll}
          111 \\
         \hline
          1
      \end{array}
   \end{array}

y falta 100 hasta llegar a 1011:


   \begin{array}{rl}
      \begin{array}{rrrrrr}
        1 & 0 & 1 & 1 & 0 & 1 \\
        - & 1 & 1 & 1 &   &   \\
         \hline
          & 1 & 0 & 0 &   & 
      \end{array}
   &
      \begin{array}{|lll}
          111 \\
         \hline
          1 \\
         \,
      \end{array}
   \end{array}

Bajando la siguiente cifra (un 0) resulta que 1000 entre 111 toca a 1.


   \begin{array}{rl}
      \begin{array}{rrrrrr}
        1 & 0 & 1 & 1 & 0 & 1 \\
        - & 1 & 1 & 1 &   &   \\
         \hline
          & 1 & 0 & 0 & 0 & 
      \end{array}
   &
      \begin{array}{|lll}
          111 \\
         \hline
          11 \\
         \,
      \end{array}
   \end{array}

Así sucesivamente.


   \begin{array}{rl}
      \begin{array}{rrrrrr}
        1 & 0 & 1 & 1 & 0 & 1 \\
        - & 1 & 1 & 1 &   &   \\
         \hline
          & 1 & 0 & 0 & 0 &   \\
          & - & 1 & 1 & 1 &   \\
         \hline
          &   & 0 & 0 & 1 & 1 \\
          &   & - & 0 & 0 & 0 \\
         \hline
          &   &   &   & 1 & 1
      \end{array}
   &
      \begin{array}{|lll}
          111 \\
         \hline
          110 \\
         \,  \\
         \,  \\
         \,  \\
         \,  \\
         \,
      \end{array}
   \end{array}

Como operación digital

Exactamente igual que la operación binaria no digital, salvo que cambia la suma "1 + 1 = 0 y acarreo 1" por 1+1=1. Es decir, que en la suma digital no se acarrea ninguna cifra. Por lo demás, es igual que la suma binaria.

Como operación de un subsistema de ejecución

Hay muchos tipos más para tratar convenientemente la información en un sistema microprocesador, tales como manejo de variables de cadenas, movimientos de datos entre secciones físicas etc. Para una mayor profundidad en detalles sobre el tema, ver juego básico de instrucciones de un sistema microprocesador o juego de instrucciones de un microprocesador determinado.

Como proceso de datos numéricos

  • Debe tenerse en consideración que esta clasificación es una aproximación para afrontar el tema con cierto orden, basado en el registro enciclopédico, ya que estrictamente unos campos entran en otros, y resulta imposible separar de modo absoluto cada uno de ellos, considerando esta, una clasificación plenamente aceptable.

Operaciones lógicas


Wikimedia foundation. 2010.

Игры ⚽ Поможем сделать НИР

Mira otros diccionarios:

  • 64 bits — En arquitectura de computadoras, 64 bits es un adjetivo usado para describir enteros, direcciones de memoria u otras unidades de datos que comprenden hasta 64 bits (8 octetos) de ancho, o para referirse a una arquitectura de CPU y ALU basadas en… …   Wikipedia Español

  • C Sharp — Saltar a navegación, búsqueda El título de este artículo se muestra incorrectamente debido a limitaciones técnicas. El título correcto es C#. C Sharp Paradigma: Orientado a objetos Apareció en: 2001 Diseñado por: Microsoft Corporation Última… …   Wikipedia Español

  • Representación del tablero (Ajedrez) — Saltar a navegación, búsqueda En el ajedrez por computadora los programadores deben de escoger una estructura de datos para representar las posiciones del ajedrez. Muchas estructuras de datos existen, llamadas colectivamente como representación… …   Wikipedia Español

  • Negación lógica — Para otros usos de este término, véase negación. En lógica y matemática, la negación, también llamada complemento lógico, es una operación sobre proposiciones, valores de verdad, o en general, valores semánticos. Intuitivamente, la negación de… …   Wikipedia Español

  • C++ — Desarrollador(es) Bjarne Stroustrup, Bell Labs Información general …   Wikipedia Español

  • Lenguaje de programación J — Saltar a navegación, búsqueda El lenguaje de programación J, diseñado por Kenneth Iverson y Roger Hui en los 90, es una síntesis de los lenguajes de programación APL (diseñado también por Iverson) y los lenguajes funcionales FP y FL creados por… …   Wikipedia Español

  • J (lenguaje de programación) — El lenguaje de programación J, diseñado por Kenneth Iverson y Roger Hui en los 90, es una síntesis de los lenguajes de programación APL (diseñado también por Iverson) y los lenguajes funcionales FP y FL creados por John Backus (famoso por FORTRAN …   Wikipedia Español

  • Telecomunicación — Este artículo o sección necesita ser wikificado con un formato acorde a las convenciones de estilo. Por favor, edítalo para que las cumpla. Mientras tanto, no elimines este aviso puesto el 21 de junio de 2011. También puedes ayudar wikificando… …   Wikipedia Español

  • IBM System/3 — Un IBM System/3 con una perforadora de tarjetas en exhibición en el Olmsted County Historical Society Museum en Rochester, Minnesota …   Wikipedia Español

  • Grandes sistemas de Burroughs — Los grandes sistemas de Burroughs fueron los más grandes de tres series de computadores mainframes de Burroughs Corporation. Fundada en los años 1880, Burroughs era la más vieja entidad continuamente operando en el área de la computación, pero… …   Wikipedia Español

Compartir el artículo y extractos

Link directo
Do a right-click on the link above
and select “Copy Link”