Operaciones+Lógicas


 * OPERACIONES LOGICAS**

Una ALU o Unidad Aritmético Lógica (Arithmetic Logia Unit) es un circuito combinacional, es decir, un sistemas digitales cuyas salidas en cualquier instante //t// dependen únicamente de los valores de las entradas en ese mismo instante //t// (excepto retardos en la propagación de las señales por el circuito), que puede realizar tanto operaciones lógicas como operaciones aritméticas según cierta combinación de señales de selección de operación. En este caso dichas señales de selección de operación van a ser 3 bits, S2,S1 y S0. El primero de todos ellos, S2, será el encargado de seleccionar entre que se muestren los resultados provenientes de la unida lógica (S2=0) o de la unidad aritmética (S2=1). S1 y S0 se encargarán de la selección de la operación a realizar dentro de dichas unidades. Las señales de datos serán 2 de 4 bits cada una, A y B. Para comenzar, plantearemos el diseño de la ALU en dos unidades diferenciadas, unidad lógica y unidad aritmética. Las entradas de datos de cuatro bits **Ai** y **Bi** se introducirán a ambas, sin embargo a la salida deberemos que solución mostrar mediante el uso de cuatro multiplexores de dos a uno, cado uno encima de otro, para así conseguir ofrecer en la salida de la ALU sólo una solución SULi o SALi. Como ya hemos mencionado esta selección se llevará a cabo con la entrada S2. Todas estás señales serán introducidas por el usuario. Un esquema de lo que podría ser la ALU lo tenemos aquí: Este mismo esquema pero realizado utilizando Orcad sería: Como podemos ver además de las entradas seleccionadas por el usuario, existen otras dos entradas, VCC y GND. La primera VCC es la fuente de alimentación, es decir donde irán unidos lo 1 por ejemplo en los multiplexores de la unidad lógica; mientras que GND, del inglés ground, es la tierra, donde uniremos los 0. Y dentro de lo que llamamos Unidad Aritmético Lógica:
 * Diseñar con el menor coste en circuitos integrados.**

El siguiente paso es la realización de los dos grandes bloques que componen la ALU, la unidad lógica y la unidad aritmética. La unidad lógica es la parte de la unidad aritmético lógica que se encarga de realizar los calculo de tipo lógico entre las variables Ai y Bi. Lo primero que haremos será realizar la tabla de verdad de la unidad lógica, que se utilizará cuando la entrada en S2 este a nivel bajo. Por lo que la tabla de verdad deberemos hacerla en función a cuatro entradas, las de control, S1 y S0, y las de datos Ai y Bi. La tabla de verdad únicamente deberemos hacerla una vez, sin embargo, a la hora de implementar las funciones mediante multiplexores, deberemos repetir el procedimiento cuatro veces, uno por cada bit, en este caso cuatro. Así quedarán cuatro salidas SULi (SUL0, SUL1, SUL2, SUL3) que serán el resultado de las operaciones realizadas con las entradas de datos Ai (A0, A1, A2, A3,) y Bi (B0, B1, B2, B3). Podemos simplificar la tabla de verdad haciendo que SULi esté en función de Bi. Así haríamos una tabla de verdad de 3 variables, las de control, S1 y S0, y esta vez únicamente la de datos Ai. Podríamos haber simplificado igualmente por cualquier otra variable que no fuera Bi sin embargo la he escogido por simple cuestión de comodidad ya que al haberla representado como bit menos significativo (LSB), está situada en la columna más exterior en la derecha y es muy fácil reducir la tabla de verdad así. Una vez tenemos la tabla de verdad reducida, podemos implementar la función **SULi** con un multiplexor de 8 a 1, utilizando las entradas **S1** (MSB)**, S0, Ai** (LSB) como entradas de control del multiplexor, y los valores 1, 0 y la entrada **Bi** y su complemento como entradas del multiplexor. La salida de dicho multiplexor será **SULi.** Como ya he comentado antes, al ser una unidad lógica con 4 bits este procedimiento habremos de repetirlo cuatro veces. Para asignar las entradas del multiplexor nos basaremos en la tabla de verdad anterior. El orden de peso en los bits es el antes ya comentado **S1**, **S0**, **Ai** (LSB). Una vez hecho esto ya tendríamos la solución de la unidad lógica para i=0,1,2,3. El equivalente de este circuito en Orcad, utilizando el inversor 74LS04 y el multiplexor 74LS151 sería:
 * Diseño de la unidad lógica.-**
 * **S1** || **S0** || **Operación Lógica** ||
 * 0 || 0 || Negación de A ||
 * 0 || 1 || Negación de B ||
 * 1 || 0 || Suma lógica de A y el complemento de B (OR) ||
 * 1 || 1 || Multiplicación lógica de A y B (AND) ||
 * Tabla de verdad:**
 * **S1** || **S0** || **Ai** || **Bi** || **SULi** ||  ||
 * **0** || **0** || **0** || **0** || **1** || **1** ||
 * **0** || **0** || **0** || **1** || **1** ||^  ||   ||
 * **0** || **0** || **1** || **0** || **0** ||^  || **0** ||
 * **0** || **0** || **1** || **1** || **0** ||^  ||   ||
 * **0** || **1** || **0** || **0** || **1** ||^  || **Bi'** ||
 * **0** || **1** || **0** || **1** || **0** ||^  ||   ||
 * **0** || **1** || **1** || **0** || **1** ||^  || **Bi'** ||
 * **0** || **1** || **1** || **1** || **0** ||^  ||   ||
 * **1** || **0** || **0** || **0** || **1** ||^  || **Bi'** ||
 * **1** || **0** || **0** || **1** || **0** ||^  ||   ||
 * **1** || **0** || **1** || **0** || **1** ||^  || **1** ||
 * **1** || **0** || **1** || **1** || **1** ||^  ||   ||
 * **1** || **1** || **0** || **0** || **0** ||^  || **Bi** ||
 * **1** || **1** || **0** || **1** || **1** ||^  ||   ||
 * **1** || **1** || **1** || **0** || **1** ||^  || **1** ||
 * **1** || **1** || **1** || **1** || **1** ||^  ||   ||
 * **S1** || **S0** || **Ai** || **SULi** ||
 * **0** || **0** || **0** || **1** ||
 * **0** || **0** || **1** || **0** ||
 * **0** || **1** || **0** || **Bi'** ||
 * **0** || **1** || **1** || **Bi'** ||
 * **1** || **0** || **0** || **Bi'** ||
 * **1** || **0** || **1** || **1** ||
 * **1** || **1** || **0** || **Bi** ||
 * **1** || **1** || **1** || **1** ||

Este es el circuito para cada bit i, a continuación, mostraremos el circuito donde están implementados todos los bit de solución de la unidad lógica. Es decir, repetiremos el proceso para este bit, pero nombraremos en vez de i, el bit correspondiente (0,1,2,3). La forma más rápida de realizar este procedimiento es utilizar los llamados módulos jerárquicos, donde en cada uno implementaremos este circuito. El circuito completo de la unidad lógica quedaría de esta manera:

Cada módulo jerárquico recibe de entrada los dos bit de datos correspondientes (Ai y Bi) y los dos bit de control que controlan que operación se realiza, es decir S1 y S0. Estos dos últimos se introducen al módulo jerárquico directamente mediante un bus de dos bit. La salida de cada módulo jerárquico nos proporciona la solución para cada bit, y su negado, que no utilizamos. La unidad aritmética se encargará de realizar los cálculos de carácter aritmético, valga la redundancia, que le indicaremos mediante las señales de control. Todos éstos cálculos se realizarán en complemento a dos, puesto que así ahorramos circuitería con respecto a otro tipo de representaciones de cantidades negativas. Los cálculos a realizar son los siguientes: Para poder realizarla con el mínimo coste en circuito integrados tendremos que hacer ciertas manipulaciones: La implementaremos utilizando sumadores en paralelo de 4 bit 74LS83 como el siguiente: Puesto que necesitamos introducir los datos dentro de él a partir de 2 entradas de 4 bits (A1…A4 y B1…B4 en el dibujo) y una entrada de un bit que representará el acarreo de entrada vamos a construir una tabla con los datos obtenidos en la manipulaciones algebraicas anteriormente realizadas. X e Y representarán los 4 bits de entrada de A y B del sumador respectivamente. Cin el acarreo de entrada. En el bloque X para elegir entre A, 3 y 2 utilizaremos multiplexores, lo mismo en el bloque Y. Por otro lado, para negar la variable o el número utilizaremos, puertas XOR de la siguiente manera: Para las entradas de control de los multiplexores que controlen la entrada en X e Y, utilizaremos una función de S1 y S0. También serán en función de S1 y S0 las entradas de las puertas XOR que se encargarán de negar las variables. F1: Elegirá para X: A (F1=0) o un número (F1=1) F2: Elegirá para Y: B(F2=0) o un número (F2=1) F3: Negará el contenido que entrará en BA1…B4 si F3=1, o la dejará sin negar si F3=0 Además se nos presenta una nueva cuestión que resolver, habremos de elegir en ambos bloques entre 2 y 3 para F1=0 o F3=0. En el bit de peso 0 o LSB (bit menos significante) para elegir entre 2 y 3 pondremos S0 negado ya que se corresponde dicho valor con el requerido, en vez de poner 0 o 1 constantes. Vamos a representar la tabla de verdad de las diferentes funciones: Otra situación que se nos plantea sería poner un multiplexor de 2 a 1 que eligiera entre 0 y 1. Como los multiplexores de 2 a 1 no están disponibles como circuitos integrados (el CI disponible son 4 puestos en cascada) vamos a realizar el diseño de dicho multiplexor:
 * Diseño de la unidad aritmética.-**
 * **S1** || **S0** || **OPERACIONES ARITMÉTICAS** ||
 * **0** || **0** || **-A+3** ||
 * **0** || **1** || **-A-3** ||
 * **1** || **0** || **-B-4** ||
 * **1** || **1** || **-B-3** ||
 * **S1** || **S0** || **OPERACIONES ARITMÉTICAS** || **EQUIVALENTE** || **X** || **Y** || **Cin** ||
 * 0 || 0 || -A+3 ||  || [[image:000465816.png width="16" height="22" caption="'{ALU}'"]] ||   || 3 || 1 ||
 * 0 || 1 || -A-3 ||  || [[image:000465817.png width="16" height="22" caption="'{ALU}'"]] ||   || [[image:000465818.png width="13" height="22" caption="'{ALU}'"]] ||   || 1 ||
 * 1 || 0 || -B-4 ||  || [[image:000465819.png width="12" height="23" caption="'{ALU}'"]] ||   || [[image:0004658110.png width="16" height="22" caption="'{ALU}'"]] ||   || 1 ||
 * 1 || 1 || -B-3 || [[image:0004658111.png width="59" height="22" caption="'{ALU}'"]] ||  || [[image:0004658112.png width="13" height="22" caption="'{ALU}'"]] ||   || [[image:0004658113.png width="16" height="22" caption="'{ALU}'"]] ||   || 1 ||
 * **S1** || **S0** || **F1** || **F2** || **F3** ||
 * **0** || **0** || **0** || **1** || **0** ||
 * **0** || **1** || **0** || **1** || **1** ||
 * **1** || **0** || **1** || **0** || **1** ||
 * **1** || **1** || **1** || **0** || **1** ||

Siendo M1 y M2 las entradas a coger, CM la señal de control del multiplexor y SM la salida. Vamos a ver la tabla de verdad de éste multiplexor: CM será la señal de control que controle por lo tanto (si está el multiplexor situado en el LSB) entre 2 y 3. Sin embargo esta solución es mucho más costosa en circuitos integrados ya que requiere la utilización de puertas lógicas mientras que la otra solución es directa. Pasemos a implementar el diseño del bloque X (el que se encargará de seleccionar y modificar las entradas para las variables A1…A4 del 74LS83). El bloque lógico X es el siguiente:
 * **CM** || **SM** ||
 * **0** || **M1** ||
 * **1** || **M2** ||

Ahora que ya tenemos el bloque lógico X, el siguiente paso será implementar el bloque lógico Y, y de esta manera ya trabajar directamente sobre el sumador una vez que ya han sido seleccionadas las entradas.

Como podemos observar la diferencia más importante con el bloque lógico X, es la suma lógica S1 y S0 para negar las variables en las puertas XOR. Una vez ya tenemos implementados ambos bloques, la unidad aritmética estará formada como ya hemos mencionado por un sumador 74LS83 al que se le conectarán las salidas de ambos bloques lógicos y también el acarreo de entrada que irá conectado a la alimentación. Finalmente las salidas serán el resultado de la operación que saldrá en un bus de 4 bits, y el acarreo de salida, formado por un solo bit de datos.

ORTEGA CASTILLO FERNANDO []

Sección Lógica Los datos de entrada en una operación lógica son manipulados en forma separada y los bits son tratados como variables binarias. En la tabla 3.12.1. se listan cuatro operaciones lógicas //OR//, //OR - Exclusiva//, //AND// y //NOT//. En el circuito, las dos líneas de selección (//S1,// //S0//) permiten seleccionar una de las compuertas de entrada, correspondientes a la función Fi.


 * ~ **S1** ||~ **S0** ||~ **Salida** ||~ **Función Fi** ||
 * 0 || 0 || F=Ai+Bi || OR ||
 * 0 || 1 || F=Ai Å Bi || XOR ||
 * 1 || 0 || F=Ai·Bi || AND ||
 * 1 || 1 || F=A'i || NOT ||

Tabla 3.12.1. Tabla de Función Lógica. El circuito lógico de la figura 3.12.2 es una etapa de un circuito lógico de //n// bits. Figura 3.12.2. Diagrama lógico de un circuito lógico de una ALU

por:Herrera Gutierrez Jessica bibliografia: http://www.virtual.unal.edu.co/cursos/ingenieria/2000477/lecciones/031201.htm

Operaciones Lógicas de Comparación. • La puerta lógica Y, más conocida por su nombre en inglés AND, realiza la función booleana de producto lógico. Su símbolo es un punto (•), aunque se suele omitir. Así, el producto lógico de las variables A y B se indica como AB, y se lee A y B o simplemente A por B. La ecuación característica que describe el comportamiento de la puerta AND es: Su tabla de verdad es la siguiente: Tabla de verdad puerta AND Entrada A Entrada B Salida AB 0 0 0 0 1 0 1 0 0 1 1 1 Su definición se puede dar, como una compuerta que entrega un 1 lógico sólo si todas las entradas están a nivel alto 1. • La puerta lógica O, más conocida por su nombre en inglés OR, realiza la operación de suma lógica. La ecuación característica que describe el comportamiento de la puerta OR es: Su tabla de verdad es la siguiente: Tabla de verdad puerta OR Entrada A Entrada B Salida A + B 0 0 0 0 1 1 1 0 1 1 1 1 Podemos definir la puerta O como aquella que proporciona a su salida un 1 lógico si al menos una de sus entradas está a 1. • La puerta lógica O-exclusiva, más conocida por su nombre en inglés XOR, realiza la función booleana A’B+AB’. Su símbolo es el más (+) inscrito en un círculo. En la figura de la derecha pueden observarse sus símbolos en electrónica. La ecuación característica que describe el comportamiento de la puerta XOR es: Su tabla de verdad es la siguiente: Tabla de verdad puerta XOR Entrada A Entrada B Salida A B 0 0 0 0 1 1 1 0 1 1 1 0 Se puede definir esta puerta como aquella que da por resultado uno, cuando los valores en las entradas son distintos. ej: 1 y 0, 0 y 1 (en una compuerta de dos entradas). Si la puerta tuviese tres o más entradas, la XOR tomaría la función de suma de paridad, cuenta el número de unos a la entrada y si son un número impar, pone un 1 a la salida, para que el número de unos pase a ser par. Esto es así porque la operación XOR es asociativa, para tres entradas escribiríamos: a (b c) o bien (a b) c. Su tabla de verdad sería: XOR de tres entradas Entrada A Entrada B Entrada C Salida A B C 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 0 0 1 1 0 1 0 1 1 0 0 1 1 1 1 • La puerta lógica NO (NOT en inglés) realiza la función booleana de inversión o negación de una variable lógica. La ecuación característica que describe el comportamiento de la puerta NOT es: Su tabla de verdad es la siguiente: Tabla de verdad puerta NOT Entrada A Salida 0 1 1 0 Se puede definir como una puerta que proporciona el estado inverso del que esté en su entrada.
 * 4.6 OPERACIONES LOGICAS DEL ALU **
 * REFERENCIAS: **
 * http://www.mitecnologico.com/Main/OperacionesLogicasAlu **
 * __ANTONIO PALOMINO GONZALEZ 7221 __**

OPERACIONES LOGICAS La mayoría de las ALU pueden realizar las siguientes operaciones:  Un ingeniero puede diseñar una ALU para calcular cualquier operación, sin importar lo compleja que sea; el problema es que cuanto más compleja sea la operación, tanto más costosa será la ALU, más espacio usará en el procesador, y más energía disipará, etc. Por lo tanto, los ingenieros siempre calculan un compromiso, para proporcionar al [|procesador] (u otros circuitos) un ALU suficientemente poderoso para hacerlo rápido, pero no tan complejo para llegar a ser prohibitivo. Imagine que usted necesita calcular, digamos, la raíz cuadrada de un número; el ingeniero digital examinará las opciones siguientes para implementar esta operación:  Las opciones arriba van de la más rápida y más costosa a la más lenta y económica. Por lo tanto, mientras que incluso la computadora más simple puede calcular la fórmula más complicada, las computadoras más simples generalmente tomarán un tiempo largo porque varios de los pasos para calcular la fórmula implicarán las opciones #3, #4 y #5 de arriba. Los procesadores poderosos como el [|Pentium IV] y el [|AMD64] implementan la opción #1 para las operaciones más complejas y la más lenta #2 para las operaciones extremadamente complejas. Eso es posible por la capacidad de construir ALU muy complejas en estos procesadores.
 *  Operaciones aritméticas de números enteros ( [|adición], [|sustracción] , y a veces [|multiplicación] y [|división] , aunque esto es más costoso)
 *  [|Operaciones lógicas] de [|bits] ( [|AND], [|NOT] , [|OR] , [|XOR] , [|XNOR] )
 *  [|Operaciones de desplazamiento] de bits (Desplazan o rotan una palabra en un número específico de bits hacia la izquierda o la derecha, con o sin [|extensión de signo] ). Los desplazamientos pueden ser interpretados como multiplicaciones o divisiones por 2.
 * 1) Diseñar una ALU muy compleja que calcule la raíz cuadrada de cualquier número en un solo paso. Esto es llamado **cálculo en un solo ciclo de reloj**.
 * 2)  Diseñar una ALU compleja que calcule la raíz cuadrada con varios pasos (como el algoritmo que aprendimos en la escuela). Esto es llamado **cálculo interactivo**, y generalmente confía en el control de una [|unidad de control] compleja con [|microcódigo] incorporado.
 * 3) Diseñar una ALU simple en el procesador, y vender un procesador separado, especializado y costoso, que el cliente pueda instalar adicional al procesador, y que implementa una de las opciones de arriba. Esto es llamado ** [|coprocesador] **.
 * 4)  [|Emular] la existencia del coprocesador, es decir, siempre que un programa intente realizar el cálculo de la raíz cuadrada, hacer que el procesador compruebe si hay presente un coprocesador y usarlo si lo hay; si no hay uno, [|interrumpir] el proceso del programa e invocar al [|sistema operativo] para realizar el cálculo de la raíz cuadrada por medio de un cierto algoritmo de software. Esto es llamado **emulación por software**.
 * 5) Decir a los programadores que no existe el coprocesador y no hay emulación, así que tendrán que escribir sus propios algoritmos para calcular raíces cuadradas por software. Esto es realizadado por **bibliotecas de software**.

JOSE ISACC SIERRA JUAREZ

REFERENCIAS es.wikipedia.org/wiki/**Unidad**_**aritmético**_**lógica**

Operaciones Lógicas de Comparación. • La puerta lógica Y, más conocida por su nombre en inglés AND, realiza la función booleana de producto lógico. Su símbolo es un punto (•), aunque se suele omitir. Así, el producto lógico de las variables A y B se indica como AB, y se lee A y B o simplemente A por B. La ecuación característica que describe el comportamiento de la puerta AND es: Su tabla de verdad es la siguiente: Tabla de verdad puerta AND Entrada A Entrada B Salida AB 0 0 0 0 1 0 1 0 0 1 1 1 Sudefinición se puede dar, como una compuerta que entrega un 1 lógico sólo si todas las entradas están a nivel alto 1. • La puerta lógica O, más conocida por su nombre en inglés OR, realiza la operación de suma lógica. La ecuación característica que describe el comportamiento de la puerta OR es: Su tabla de verdad es la siguiente: Tabla de verdad puerta OR Entrada A Entrada B Salida A + B 0 0 0 0 1 1 1 0 1 1 1 1 Podemos definir la puerta O como aquella que proporciona a su salida un 1 lógico si al menos una de sus entradas está a 1. • La puerta lógica O-exclusiva, más conocida por su nombre en inglés XOR, realiza la función booleana A’B+AB’. Su símbolo es el más (+) inscrito en un círculo. En la figura de la derecha pueden observarse sus símbolos en electrónica. La ecuación característica que describe el comportamiento de la puerta XOR es: Su tabla de verdad es la siguiente: Tabla de verdad puerta XOR Entrada A Entrada B Salida A B 0 0 0 0 1 1 1 0 1 1 1 0 Se puede definir esta puerta como aquella que da por resultado uno, cuando los valores en las entradas son distintos. ej: 1 y 0, 0 y 1 (en una compuerta de dos entradas). Si la puerta tuviese tres o más entradas, la XOR tomaría la función de suma de paridad, cuenta el número de unos a la entrada y si son un número impar, pone un 1 a la salida, para que el número de unos pase a ser par. Esto es así porque la operación XOR es asociativa, para tres entradas escribiríamos: a (b c) o bien (a b) c. Su tabla de verdad sería: XOR de tres entradas Entrada A Entrada B Entrada C Salida A B C 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 0 0 1 1 0 1 0 1 1 0 0 1 1 1 1 • La puerta lógica NO (NOT en inglés) realiza la función booleana de inversión o negación de una variable lógica. La ecuación característica que describe el comportamiento de la puerta NOT es: Su tabla de verdad es la siguiente: Tabla de verdad puerta NOT Entrada A Salida 0 1 1 0 Se puede definir como una puerta que proporciona el estado inverso del que esté en su entrada.

POST BAUTISTA MATA JONATHAN ADRIAN

www.geomundos.com/.../**alu**_doc_1997.html

OPERACIONES LOGICAS

Operaciones Lógicas de Comparación. • La puerta lógica Y, más conocida por su nombre en inglés AND, realiza la función booleana de producto lógico. Su símbolo es un punto (•), aunque se suele omitir. Así, el producto lógico de las variables A y B se indica como AB, y se lee A y B o simplemente A por B. La ecuación característica que describe el comportamiento de la puerta AND es: Su tabla de verdad es la siguiente: Tabla de verdad puerta AND Entrada A Entrada B Salida AB 0 0 0 0 1 0 1 0 0 1 1 1 Su definición se puede dar, como una compuerta que entrega un 1 lógico sólo si todas las entradas están a nivel alto 1. • La puerta lógica O, más conocida por su nombre en inglés OR, realiza la operación de suma lógica. La ecuación característica que describe el comportamiento de la puerta OR es: Su tabla de verdad es la siguiente: Tabla de verdad puerta OR Entrada A Entrada B Salida A + B 0 0 0 0 1 1 1 0 1 1 1 1 Podemos definir la puerta O como aquella que proporciona a su salida un 1 lógico si al menos una de sus entradas está a 1. • La puerta lógica O-exclusiva, más conocida por su nombre en inglés XOR, realiza la función booleana A’B+AB’. Su símbolo es el más (+) inscrito en un círculo. En la figura de la derecha pueden observarse sus símbolos en electrónica. La ecuación característica que describe el comportamiento de la puerta XOR es: Su tabla de verdad es la siguiente: Tabla de verdad puerta XOR Entrada A Entrada B Salida A B 0 0 0 0 1 1 1 0 1 1 1 0 Se puede definir esta puerta como aquella que da por resultado uno, cuando los valores en las entradas son distintos. ej: 1 y 0, 0 y 1 (en una compuerta de dos entradas). Si la puerta tuviese tres o más entradas, la XOR tomaría la función de suma de paridad, cuenta el número de unos a la entrada y si son un número impar, pone un 1 a la salida, para que el número de unos pase a ser par. Esto es así porque la operación XOR es asociativa, para tres entradas escribiríamos: a (b c) o bien (a b) c. Su tabla de verdad sería: XOR de tres entradas Entrada A Entrada B Entrada C Salida A B C 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 0 0 1 1 0 1 0 1 1 0 0 1 1 1 1


 * Autor: DE LA CRUZ IBAÑEZ MOISES**