You are on page 1of 8

OPERACIONES CON BITS...

CONTINUACION
Hemos visto que es posible realizar operaciones aritmticas, por ejemplo, suma, resta,
multiplicacin, etc. con valores binarios. Otra clase de operaciones que es til de realizar con
patrones binarios es el conjunto de operaciones lgicas.
Las operaciones lgicas trabajan con variables lgicas, las cuales tienen valores de 0 1. Existen
varias funciones lgicas bsicas y la mayora de las ALU (Unidad Aritmtico Lgica) pueden
realizarlas.
La Funcin AND
AND (y en espaol) es una funcin lgica binaria. Puede tener ms de dos datos de entrada. Cada
entrada es una variable lgica, que toma el valor de 0 o 1. La salida AND es 1 slo si las entradas
son 1. De lo contrario, la salida es 0.
un mecanismo conveniente para representar el comportamiento de una operacin lgica es la tabla
de verdad, que consiste de n+1 columnas y 2n filas. Las primeras n columnas corresponden a los n
operandos de origen, y cada operando de origen es una variable lgica y puede tener uno de dos
valores, por lo tanto hay 2n valores nicos que estos operando de origen pueden tener. La columna
final muestra la salida de cada combinacin de entrada en la tabla de verdad.
En el caso de de una funcin AND de dos entradas, la tabla de verdad tiene dos columnas para los
operandos de origen y cuatro (22) filas para las combinaciones de entrada nicas.
A
0
0
1
1

B
0
1
0
1

AND
0
0
0
1

Podemos aplicar la operacin lgica AND a dos parmetros de bits de m bits cada uno. Esto implica
aplicar la operacin de manera individual a cada par de bits en los dos operandos de origen.
Ejemplo:
Si c es el AND de a y b, donde a = 0011101001101001 y b = 0101100100100001 Qu es c?
Solucin:
Formamos el AND de a y b al aplicar AND en modo de bits a los dos valores.
Esto significa aplicar AND de manera individual a cada par de bits ai y bi para formar ci.
a: 0 0 1 1 1 0 1 0 0 1 1 0 1 0 0 1
b: 0 1 0 1 1 0 0 1 0 0 1 0 0 0 0 1
c: 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 1
Otro Ejemplo:
Suponga que tiene un patrn de 8 bits. Llammoslo A, en el cual los dos bits en el extremo derecho
tienen una importancia particular. Podra indicarse a la computadora que realice una de cuatro tareas
dependiendo del valor almacenado en los dos dgitos en el extremo derecho de A. Podemos Aislar
dos Bits?
Solucin:
S, podemos, usando una mscara de bits. Una mscara de bits es un patrn binario que
permite que los bits de A se separen en dos partes: la que a usted le interesa y la que se desea
ignorar. En este caso si se aplica AND a la mscara de bits 00000011 con A produce cero en
las posiciones de bits 7 a 2, y los valores originales de bits 1 y 0 de A en las posiciones de

bits 1 y 0. Se dice que la mscara de bits oculta los valores en las posiciones de bits 7 a 2.
si A es 01010110, al AND con la mscara de bits 00000011 es 00000010. El resultado de
aplicar AND con la mscara es resaltar los dos bits que son relevantes.
La Funcin OR
OR (o en espaol) tambin es una funcin lgica binaria. Puede tener ms de dos datos de
entrada. Cada entrada es una variable lgica, que toma el valor de 0 o 1. La salida OR es 0 slo si
las entradas son 0. y es uno si cualquiera de las entradas es 1.
La tabla de verdad de la funcin OR de dos entradas es:
A
0
0
1
1

B
0
1
0
1

OR
0
1
1
1

Del mismo modo que aplicamos la funcin AND a dos patrones de m bits, podemos aplicar la
operacin OR en modo de bits a dos patrones de m bits.
Ejemplo:
Si c es el OR de a y b, donde a = 0011101001101001 y b = 0101100100100001, Qu es c?
Solucin:
Formamos el OR de a y b al aplicar OR en modo de bits.
Esto significa aplicar OR de manera individual a cada par de bits ai y bi para formar ci.
a: 0 0 1 1 1 0 1 0 0 1 1 0 1 0 0 1
b: 0 1 0 1 1 0 0 1 0 0 1 0 0 0 0 1
c: 0 1 1 1 1 0 1 1 0 1 1 0 1 0 0 1
La Funcin NOT
NOT (no en espaol) es una funcin lgica unaria. Esto significa que opera slo en un operando
de origen. Tambin se conoce como operacin complemento. La salida se forma al invertir la
entrada. Una entrada de 1 da como resultado una salida de 0. Una entrada de 0 da como resultado
una salida de 1.
La tabla de verdad de la funcin NOT es:
A
0
1

NOT
1
0

De la misma manera que aplicamos las operaciones lgicas AND y OR a dos patrones de m bits,
podemos aplicar la operacin NOT en modo de bits a un patrn de m bits. Si a es como antes,
entonces c es el NOT de a.
a: 0 0 1 1 1 0 1 0 0 1 1 0 1 0 0 1
c: 1 1 0 0 0 1 0 1 1 0 0 1 0 1 1 0
La Funcin OR exclusivo
El OR exclusivo, a menudo abreviado XOR, es una funcin lgica binaria. Puede tener ms de dos

datos de entrada. Cada entrada es una variable lgica, que toma el valor de 0 o 1. La salida de OR
exclusivo es 1 si las entradas son diferentes. La salida es 0 si los orgenes son iguales.
La tabla de verdad de la funcin XOR de dos entradas es:
A
0
0
1
1

B
0
1
0
1

XOR
0
1
1
0

Del mismo modo que aplicamos la funcin AND a dos patrones de m bits, podemos aplicar la
operacin XOR en modo de bits a dos patrones de m bits.
Ejemplo:
Si c es el XOR de a y b, donde a = 0011101001101001 y b = 0101100100100001, Qu es c?
Solucin:
Formamos el XOR de a y b al aplicar XOR en modo de bits.
Esto significa aplicar XOR de manera individual a cada par de bits ai y bi para formar ci.
a: 0 0 1 1 1 0 1 0 0 1 1 0 1 0 0 1
b: 0 1 0 1 1 0 0 1 0 0 1 0 0 0 0 1
c: 0 1 1 0 0 0 1 1 0 1 0 0 1 0 0 0
Otro Ejemplo:
Suponga que deseamos saber si dos patrones son idnticos. Como lo haramos?
Solucin:
Como la funcin XOR produce un 0 slo si el par de bits correspondiente es idntico,
haramos XOR en modo bit con los patrones dados.
OTRAS REPRESENTACIONES:
Otras representaciones de informacin son: el vector de bits y el tipo de datos de punto flotante.
Tambin existen otras como el cdigo BCD, Exceso 3, Gray, ASCII y la notacin Hexadecimal.
Nota: las representaciones que no se describen aqu las consulta el lector.
El Vector de Bits
Muchas veces es til describir un sistema complejo formado por varias unidades, cada una de las
cuales est ocupada o disponible de manera individual o independiente. Por ejemplo, en una planta
industrial donde cada unidad es una mquina particular. O una red de taxis donde cada unidad es un
taxi en particular. En ambos casos, es importante identificar cules unidades estn ocupadas y
cules estn disponibles, de modo que el trabajo pueda asignarse segn sea necesario.
Digamos que tenemos n unidades de stas. Podemos seguir la pista de estas n unidades con un
patrn binario de n bits al cual llamaremos vector de bits, donde un bits es un 1 si la unidad est
libre y 0 si est ocupada.
Ejemplo:
Suponga que tenemos 8 mquinas cuya disponibilidad queremos monitorear.
Solucin:
Creamos un vector de DISPONIBILIDAD de 8 bits, donde un bit es 1 si la unidad est libre

y 0 si esta ocupada. Los bits estn etiqueteados de derecha a izquierda, del 0 al 7.


Si DISPONIBILIDAD es: 11000010 significa que slo las unidades 7, 6 y 1 estn
disponibles, supongamos que le vamos a signar una tarea a la unidad 7. Entonces,
actualizamos nuestro vector con AND lgico con mscara 01111111, por lo que el vector
DISPONIBILIDAD tomara el valor de: 01000010.
Suponga que la unidad 5 termina su tarea y se vuelve inactiva. Se actualiza el vector
DISPONIBILIDAD con un OR con mscara de bits 00100000, el resultado ser: 01100010.
Tipo de Datos de Punto Flotante
Se utiliza para representar nmeros enteros con mayor precisin o nmeros de decimales.
Por ejemplo, para representar un tipo de dato flotante de 32 bits se usa:
1 bit para el signo (positivo o negativo)
8 bits para el intervalo (el campo de exponente)
23 bits para precisin (el campo de fraccin)
S
1

exponente
8

fraccin
23

N = (-1)s * 1,fraccin*2
donde 1 <= exponente <= 254 S es el bit del signo
Esta frmula es parte del estndar IEEE para aritmtica de punto flotante.
Por ejemplo, 6,023 *1023 tiene tres partes: el signo, el cual es positivo, los dgitos significativos
6,023 y el exponente 23. Llamamos a los dgitos significativos fraccin. La fraccin se normaliza;
es decir, aparece exactamente un dgito decimal que no es cero a la izquierda del punto decimal.
Ejemplos:
Cunto es el nmero -6(5/8) representado en el tipo de dato de punto flotante?
Primero, expresemos -6(5/8) como binario: -110,101
-1*(1*22 + 1*21 + 0*20 + 1*2-1 + 0*2-2 + 1*2-3)
Luego normalizamos el valor, que produce -1,10101 * 22
El bit de signo es 1, reflejando el hecho de que -6(5/8) es un nmero negativo. El campo de
exponente contiene 10000001, el nmero 129 sin signo, lo cual refleja el hecho de que el
exponente real es +2 (129 -127 = +2). La fraccin es los 23 bits de precisin, despus de
eliminar el 1 inicial. Es decir, la fraccin es 10101000000000000000000. el resultado es el
nmero -6(5/8), expresado como un nmero de punto flotante:
1 10000001 10101000000000000000000
Qu representa el tipo de datos de punto flotante siguiente?
00111101100000000000000000000000
El bit inicial es un 0. esto significa un nmero positivo. Los 8 bits siguientes representan el
nmero 123 sin signo. Si restamos 127, obtenemos el exponente real -4. los ltimos 23 bits
son todos 0. por lo tanto, el nmero que se est representando es
+1,000000000000000000000000 *2-4 lo cual es 1/16.
Observamos que la interpretacin de los 32 bits requiri que el campo de exponente no
contuviera ni 00000000 ni 11111111. el estndar IEEE para la aritmtica de punto flotante
tambin especifica cmo interpretar los 32 bits si el campo de exponente con tiene
00000000 11111111.
Si el campo de exponente contiene 00000000, el exponente es -126 y los dgitos
significativos se obtienen al comenzar con un 0 inicial, seguido por un punto binario y luego
por los 23 bits del campo de fraccin, como se muestra a continuacin:

-1s 0,fraccin 2-126


Por ejemplo, la representacin de datos del punto flotante
0 00000000 00001000000000000000000
puede evaluarse como sigue: el 0 inicial significa que el nmero es positivo. Los ocho bits
siguientes, un exponente cero, significa que el exponente es -126. los ltimos 23 bits forman
el nmero 0,00001000000000000000000, lo cual equivale a 2-5 por lo tanto, el nmero
representado es 2-5 2-126, que es 2-131, esto permite representar nmeros supremamente
pequeos.
Otros ejemplos:

0 10000011 00101000000000000000000 es 1,00101 24 = 18,5

El campo del exponente contiene el nmero sin signo 131. como 131 127 es 4, el
exponente es +4. Combinar un 1 a la izquierda del punto binario con el campo de fraccin a
la derecha del punto binario produce: 1.00101. Si movemos el punto binario a la derecha 4
posiciones, obtenemos: 10010,1 lo cual es 18,5.
110000 010 00101000000000000000000 es -11,00101 23 = -9,25
El bit de signo es 1, lo cual significa un nmero negativo. El exponente es 130 127 = 3.
Combinar un 1 a la izquierda del punto binario con el campo de fraccin a la derecha del
punto binario produce 1,00101. Al mover el punto binario 3 posicciones a la derecha
obtenemos: 1001,01 que es -9,25.
1 00000000 00000000000000000000001 es -2-149
El signo es negativo. El coampo del exponente contiene slo cereos, lo cual significa un
exponente de -126. Combinar un 0 a la izquierda del punto binario con el campo de fraccin
a la derecha del punto binario produce 2-23 para la fraccin. Por consiguiente, el nmero
representado es -2-23 2-126, lo que produce: 2-149.
011111 110 11111111111111111111111 es ~2128
El signo es +. El exponente es 254 -127 = 127. Combinar un 1 a la izquierda del punto
binario con el campo de fraccin a la derecha del punto binario produce: 1,11111111...1, lo
cual es 2 aproximadamente. Por consiguiente el resultado es aproximadamente 2128.
Cdigos ASCII
Es otra forma de representacin de informacin, es un estndar que casi todos los fabricantes de
equipos de cmputo han aceptado usar para transferir cdigos de caracteres entre la unidad de
procesamiento y los dispositivos perifricos. ASCII son las siglas de American Standart Code for
Infomation Interchange (Cdigo Estndar Americano para Intercambio de la Informacin). Por lo
general simplifica en gran medida la interfaz entre un teclado fabricado por una compaa, una
computadora hecha por otra compaa y un monitor hecho por una tercera compaa.
Cada tecla en el teclado se identifica por su cdigo ASCII nico. Por ejemplo, el nmero 3

expandido a 8 bits con un cero inicial es 00110011, el dos es 00110010, la e minscula es 01100101
y el retorno de carro es 00001101.
Para conocer los cdigos ASCII observe la Figura 11.

Figura 1: Tabla de Cdigo ASCII

1 Figura Tomada de www.webturoriales.com

ACTIVIDADES DE AFIANZAMIENTO Y EVALUACION


1. Calcule y concluya acerca de las operaciones que se realizan qu efectos tienen en los bits.:
a) NOT (100010001001) OR NOT (110011001100)
b) NOT (100000000110 AND (100000000110 OR 010101010101))
c) NOT ( NOT ( 1101010101111))
d) (011001100001 OR 000010000100) AND 111111111111
2. En el ejemplo donde usamos el vector DISPONIBILIDAD Para qu se usan las mscaras?
3. Con el mismo ejemplo del vector DISPONIBILDAD desarrolle:
Sugerencia: tenga en cuenta el ltimo resultado del vector DISPONIBILIDAD siempre.
a) Qu valor de mscara y qu operacin se usaran para indicar que las mquinas 2 y 5
estn ocupadas?
b) Qu valor de mscara y que operacin se usaran para indicar que las mquinas 2 y 4 ya
no estn ocupadas? Nota: Realicelo con una sola operacin.
c) Qu valor de mscara y qu operacin se usara para indicar que todas las mquinas
estn disponibles?
d) Qu valor de mscara y qu operacin se usara para indicar que todas las mquinas
estn inactivas?
e) Desarrolle un procedimiento para asilar el bit de estado de la mquina 2 como el bit de
signo. Por ejemplo, si el patrn DISPONIBILDAD es 01101100,entonces la salida de
este procedimiento es 10000000. Si el patrn DISPONIBILIDAD es 10110011, entonces
la salida es 00000000.

Sugerencia: piense en Qu ocurre cuando un patrn de bits se suma a s mismo?

4. Si n y m son nmeros en complemento a dos de 8 bits, y s es el resultado de 8 bits de la


suma de ambos, cmo podemos determinar, usando slo las operaciones lgicas descritas
en ste documento, si ocurri un desbordamiento durante la suma? Elabore un
procedimiento. Las entradas son n, m y s, y la salida ser un patrn de bits slo ceros
(00000000) si no ocurri desbordamiento y 10000000 si ocurri desbordamiento.
5. Si n y m son nmeros sin signos de 8 bits, y s es el resultado de 8 bits de la suma de ambos,
cmo podemos determinar, usando slo las operaciones lgicas descritas en ste
documento, si ocurri un desbordamiento durante la suma? Elabore un procedimiento. Las
entradas son n, m y s, y la salida ser un patrn de bits slo ceros (00000000) si no ocurri
desbordamiento y 10000000 si ocurri desbordamiento.
6. Escriba la representacin en punto flotante del IEEE de los nmeros decimales:
a) 3,75

b) -55(23/64)
c) 3,1415927
d) 64000
7. Escriba los equivalentes decimales para los siguientes nmeros de punto flotante en el
estndar IEEE:
a) 0 10000000 00000000000000000000000
b) 1 10000011 00010000000000000000000
c) 1 10000000 10010000000000000000000
8. Cul es el mayor exponente que permite el estndar IEEE para un nmero de punto flotante
de 32 bits? Cul es el menor exponente que permite el estndar IEEE para un nmero de
punto flotante de 32 bits? Qu otros estndares existen para representar nmeros de punto
flotante; haga un cuadro comparativo incluyendo el IEEE?
9. Un programador escribi un programa que suma dos nmeros. El programador ejecut el
programa y observo que cuando suma 5 + 8, el resultado es el carcter m. Explique por qu
este programa se comporta de manera errnea.
10. Traduzca los cdigos ASCII siguientes a cadenas de caracteres al interpretar cada grupo de
ocho bits como un carcter ASCII.
a) 48656c6c6f21.
b) 68454c4c4f21
c) 436f6d70757464727321
d) 486f6c61204d756e646f3b2d29

REFERENCIA BIBLIOGRAFICA

Patt, Yale. Patel, Sanjay. Introduccin a los Sistemas de Cmputo de los Bits y compuertas
al c y ms all. Editorial McGrawHill. Segunda Edicin. ISBN 970-10-4678-1. Mxico
2005. Pginas 35 - 43. Ejercicios de las pginas 48 y 49.

You might also like