Professional Documents
Culture Documents
Diseo lgico
Tema 1: Sistemas numricos y cdigos binarios
Profesor:
Adn G. Medrano Chvez
agmc@azc.uam.mx
Introduccin
1 Introduccin
3 Cdigos binarios
4 Procesamiento de la informacin
1 Introduccin
Objetivos especficos del tema
3 Cdigos binarios
4 Procesamiento de la informacin
Objetivos
Entender cmo se representa la
informacin en los sistemas digitales
Conocer distintos cdigos para representar
informacin en un sistema digital
Aplicar la aritmtica binaria para
manipular la informacin
1 Introduccin
Marco contextual
3 Cdigos binarios
4 Procesamiento de la informacin
Definicin
Son aquellos datos que obtenemos de
la naturaleza o el mundo humano, y
que, bajo un observador cognitivo,
tienen algn significado.
Por razones de simplicidad y costo, los sistemas digitales generalmente operan con seales
cuya amplitud tiene asociado el valor lgico de cero o de uno: los valores del sistema
numrico binario
Los dgitos binarios se conocen como bits
La informacin en los sistemas digitales est codificada en grupos de bits:
I nibble
I byte
I word
Pregunta
La informacin que se obtiene del
mundo natural o humano puede ser
manipulada directamente por un
sistema digital?
Seal
Observacin
Son variaciones de alguna magnitud
Las computadoras son sistemas
fsica que transmiten informacin del
digitales requieren de convertidores
comportamiento de un sistema o
A/D para trabajar con la informacin
atributos de un algn fenmeno1 .
que proviene del exterior.
Pueden ser representadas
Generalmente, la informacin se
matemticamente por funciones de
representa como una seal.
una o ms variables2 .
1
Priemer, Introductory signal processing, World Scientific, 1991
2
Oppenheim, Seales y sistemas, Prentice-Hall, 1998.
Universidad Autnoma Metropolitana Adn G. Medrano-Chvez 11
Introduccin Marco contextual
Ejercicio
analgica-digital de la seal mostrada
cuatro bits.
Obtencin de la Informacin
En este caso, una antena est
2 sin(2x) cos(x) + 2
Muestreo
Se toman muestras de la amplitud de
unidades de tiempo.
Digitalizacin
Codificacin
A cada nivel de la seal digital se le
asigna un cdigo binario, por
simplicidad, cada nivel tiene asociado
1000111110000010
un cdigo relacionado con su altura,
1000101010001001
e.g. al nivel cero le corresponde el
1000001110001110
cdigo 0000, al nivel uno el cdigo
1000000010001110
0001 y as, sucesivamente, hasta el
nivel 15 que tiene por cdigo el 1111.
Siendo as, la secuencia de bits
asociada a la seal analogica se
muestra a la derecha.
1 Introduccin
3 Cdigos binarios
4 Procesamiento de la informacin
Definicin
Tienen la forma:
sn1 . . . s1 s0 .s1 s2 sm ,
donde s S, n es la cantidad de smbolos a la izquierda del punto y m la cantidad de smbolos
a la derecha.
Cada smbolo tiene asociado un cierto valor dado en unidades, e.g. el smbolo 9 vale nueve
unidades y la A vale diez. As, la magnitud de un nmero M est determinada por la frmula:
n1
X
M= si i ,
i=m
donde si es el valor del smbolo de la posicin i y es la base del sistema numrico, tal que
= |S|.
Universidad Autnoma Metropolitana Adn G. Medrano-Chvez 22
Sistemas numricos posicionales
Ejemplo
El nmero decimal 945.37 tiene:
m = 2 smbolos a la izquierda del punto
n = 3 smbolos a la derecha
una magnitud M = (7)(102 ) + (7)(101 ) + (7)(100 ) + (7)(101 ) + (7)(102 )
Ejercicio
Cules son las caractersticas del nmero decimal 340.125?
1 Introduccin
3 Cdigos binarios
4 Procesamiento de la informacin
Observacin
Tipos de conversiones numricas
Debido a que los sistemas digitales
operan con cdigos binarios, en este binario a decimal
cursos se requiere que el alumno binario a base 2k
pueda realizar conversiones entre base 2k a binario
nmeros con distintas bases decimal a binario
numricas
Ejemplo
Estrategia Para (111.101)2 tenemos que:
Emplear la siguiente frmula, m=3
sustituyendo por dos. n=3
n1
X =2
i
M= si Entonces, (111.101)2 = (7.625)10 ya
i=m que:
P2 i
i=3 si 2 = (7.625)10
Ejemplo
Observacin
La fraccin del nmero binario
La fraccin de un nmero binario es
(10.11111) es igual a 31
32 ya que
igual a su valor entero dividido entre
m = 5 y la fraccin vista como un
2m
entero es igual a 31
Estrategia
Para los enteros, dividir el
nmero binario en grupos de tres
bits de derecha a izquierda a
partir del punto Ejemplos
Si el nmero tiene fraccin, (1.1)2 = (1.4)8
entonces dividir la fraccin en
grupos de tres bits de izquierda a (110.01)2 = (6.2)8
derecha (11, 010.110, 1)2 = (32.64)8
Convertir cada grupo de tres bits
a su equivalente en decimal,
Se agregan ceros si los grupos no
estn completos
Universidad Autnoma Metropolitana Adn G. Medrano-Chvez 28
Sistemas numricos posicionales Conversiones numricas
Estrategia Ejemplos
Cada dgito octal se convierte en un (1.4)8 = (1.1)2
nmero binario de tres bits. Los ceros (67.12)8 = (110, 111.001, 01)2
insignificantes pueden eliminarse. (100.7)8 = (1, 000, 000.111)2
Estrategia
Para los enteros, dividir el
nmero binario en grupos de
cuatro bits de derecha a
izquierda a partir del punto Ejemplos
Si el nmero tiene fraccin, (1.1)2 = (1.8)16
entonces dividir la fraccin en
grupos de cuatro bits de (110.01)2 = (6.4)16
izquierda a derecha (1, 1010.1101)2 = (1A.D)16
Convertir cada grupo de cuatro
bits en su equivalente en decimal,
Se agregan ceros si los grupos no
estn completos
Universidad Autnoma Metropolitana Adn G. Medrano-Chvez 30
Sistemas numricos posicionales Conversiones numricas
Estrategia Ejemplos
Cada dgito hexadecimal se convierte (1.4)16 = (1.01)2
en un nmero binario de cuatro bits. (67.12)16 = (1100111.0001001)2
Los ceros insignificantes pueden (F 00.7)16 =
eliminarse. (111100000000.0111)2
Observacin
No todas las fracciones decimales
pueden representarse como una Ejemplos
fraccin binaria, de hecho, solo (0.4)10 (0.0110)2 con p = 4
pueden representarse sin falta de
(0.51)10 (0.10)2 con p = 2
precisin aquellas fracciones que
tengan por denominador una potencia (0.12)10 (0.0001111)2 con
de dos. Por esta razn, el algoritmo p=7
anterior tiene por entrada la precisin
deseada.
1 Introduccin
3 Cdigos binarios
4 Procesamiento de la informacin
Representaciones binarias
Los sistemas digitales trabajan con los
siguientes cdigos binarios para
representar los datos indicados en el
Observacin cuadro de la izquierda:
Bsicamente, nuestros datos se Signo-magnitud
pueden construir a partir de nmeros Complemento a uno
enteros, nmeros reales y caracteres Complemento a dos
alfanumricos.
Notacin en exceso a K
Cdigo gray
Cdigo BCD
Cdigo ASCII
Universidad Autnoma Metropolitana Adn G. Medrano-Chvez 36
Cdigos binarios Signo-magnitud
1 Introduccin
3 Cdigos binarios
Signo-magnitud
4 Procesamiento de la informacin
Definicin Ejemplos
Notacin empleada para representar Con ocho cinco bits tenemos:
principalmente nmeros enteros con 0_0000 = (+0)10
signo. Menos frecuentemente, esta 1_0000 = (0)10
notacin se emplea para representar
nmeros reales. Si se tiene un cdigo 0_1111 = (+15)10
de n bits, el bit ms significativo 1_1111 = (15)10
representa el signo. 1_1011 = (11)10
1 Introduccin
3 Cdigos binarios
Complementos
4 Procesamiento de la informacin
Definicin
Operacin matemtica empleada para
obtener cdigos de nmeros negativos
Ejemplos
que permiten simplificar la operacin
de la substraccin para que sta Para nmeros base = 10
tenemos:
pueda hacerse nicamente con
complemento a nueve
adiciones, lo que implica una
complemento a diez
reduccin en la complejidad del
Para nmeros base = 2
hardware. De acuerdo con Mano,
tenemos:
para cada base hay dos
complemento a uno
complementos [que permiten complemento a dos
simplificar la substraccin]: el
complemento a y el complemento a
1.
Universidad Autnoma Metropolitana Adn G. Medrano-Chvez 40
Cdigos binarios Complementos
Ejemplos
Para = 10, el complemento a 9
Definicin de 1234 es igual a
Segn Mano: Dado un nmero N en
base que tiene n dgitos, el 104 1 1234 = 8765
complemento a ( 1) se define
Para = 2, el complemento a 1
como ( n 1) N
de 1101 es igual a
Observacin Ejemplos
El complemento reducido de la base Para = 2:
para el sistema binario se puede comp1 (0011) = 1100
obtener rpidamente invirtiendo los comp1 (110011) = 001100
bits, i.e. cambiando los unos por ceros
comp1 (0101110011) =
y los ceros por unos.
1010001100
Ejemplos
Para = 10, el complemento a
Definicin diez de 1234 es igual a
El complemento a de un nmero de
104 1234 = 8766
n dgitos N en base se define como
r n NN 6= 0 y como cero para Para = 2, el complemento a 2
N = 0. de 1101 es igual a
Observacin
El complemento a dos de los nmeros
binarios puede obtenerse rpidamente Ejemplos
siguiendo esta estrategia: Para = 2:
Inpecciona el nmero de derecha comp2 (0011) = 1101
a izquierda comp2 (110000) = 010000
Identifica el primer uno comp2 (0101110011) =
A partir del primer uno, 1010001101
complementa los bits de la
izquierda
Observacin Ejemplos
Para restaurar un nmero
comp2 (0001) = 1111
complementado N 0 , basta con
aplicarle el complemento a dos a N 0 . comp2 (1111) = 0001
1 Introduccin
3 Cdigos binarios
Notacin en exceso
4 Procesamiento de la informacin
Definicin
Cdigos que se obtienen sumando K Decimal Exceso a dos
a una representacin numrica sin (2)10 (000)2
signo. El resultado es un cdigo que (1)10 (001)2
puede representar nmeros negativos (+0)10 (010)2
siempre que K > 0. Estos cdigos se (+1)10 (011)2
emplean para facilitar comparaciones (+2)10 (100)2
numricas porque estn ordenados. (+3)10 (101)2
Tienen la ventaja de usar slo un (+4)10 (110)2
cdigo para representar al cero. Los (+5)10 (111)2
nmeros de punto flotante los
emplean.
1 Introduccin
3 Cdigos binarios
Cdigo gray
4 Procesamiento de la informacin
Decimal Gray
Definicin (0)10 000
Cdigos para representar secuencias (1)10 001
nmericas. Una caracterstica notable (2)10 011
de los cdigos de Gray es que dos (3)10 010
cdigos sucesivos slo varan en un (4)10 110
bit. Se emplean para detectar errores (5)10 111
durante la transmisin de una (6)10 101
secuencia. (7)10 100
Decimal BCD
(0)10 (0000)2
Definicin (1)10 (0001)2
Cdigo binario que emplea cuatro bits (2)10 (0010)2
para representar los dgitos decimales (3)10 (0011)2
i.e. del 0 al 9; cada cdigo solo usa (4)10 (0100)2
las diez primeras combinaciones (5)10 (0101)2
posibles que pueden generarse con 16 (6)10 (0110)2
bits. Es empleado por algunas (7)10 (0111)2
calculadoras de bolsillo. (8)10 (1000)2
(9)10 (1001)2
1 Introduccin
3 Cdigos binarios
ASCII
4 Procesamiento de la informacin
Caractersticas
American standard code for information interchange
Cada smbolo se forma con siete bits
Los caracteres dentro del rango 00-7F y el 7F permiten controlar
del flujo de la informacin o darle formato a un texto impreso
Los caracteres restantes son imprimibles
Cmo se obtiene el valor numrico de los caracteres numricos?
Cmo se convierte una mayscula en minscula?
Qu desventaja tiene este cdigo?
Si empleamos ocho caracteres en lugar de siete, qu podemos
hacer con el bit extra?
Problema
En la tabla de la derecha se muestran No. ASCII caracter bit
los caracteres ASCII que el transmisor 1 100_1000
Tx est por enviar al receptor Rx . 2 100_0101
Indica cul es el mensaje que Tx 3 100_1100
enviar y agrega el bit de paridad que 4 100_1100
corresponda. Si el ltimo caracter que 5 100_1111
recibe Rx es 110_1110, es posible
detectar que ocurri un error?
decimal base dos sign-mag comp1 comp2 exc4 gray BCD ASCII
-4 100 000
-3 111 100 101 001
-2 110 101 110 010
-1 101 110 111 011
-0 100 111
+0 000 000 000 000 100 000 0000 011 0000
+1 001 001 001 001 101 001 0001 011 0001
+2 010 010 010 010 110 011 0010 011 0010
+3 011 011 011 011 111 010 0011 011 0011
+4 100 110 0100 011 0100
+5 101 111 0101 011 0101
+6 110 101 0110 011 0110
+7 111 100 0111 011 0111
+8 1000 011 1000
+9 1001 011 1001
Representaciones de nmeros decimales en distintos cdigos binarios de tres bits, excepto BCD y ASCII
Universidad Autnoma Metropolitana Adn G. Medrano-Chvez 62
Procesamiento de la informacin
1 Introduccin
3 Cdigos binarios
4 Procesamiento de la informacin
1 Introduccin
3 Cdigos binarios
4 Procesamiento de la informacin
Introduccin a la lgica binaria
Definicin
Tambin llamada lgebra de Boole,
es la rama de las matemticas en la
que las variables solo tienen dos
posible valores: o cierto o falso.
Generalmente, cierto se denota como
1 y falso como 0. A diferencia de las
matemticas tradicionales, las
operaciones principales son la
disyuncin (OR), la conjuncin(AND)
y la negacin (NOT ).
George Boole. Fuente: Wikimedia.
Observacin
Los operadores del lgebra Booleana dependen del campo en el que se estn aplicando.
Definicin
Operacin lgica unaria que da como
p p
resultado cierto si la proposicin es
falsa, de lo contrario, resulta en falso. 0 1
Su operador es . Tiene mayor 1 0
precedencia que la conjuncin y la
disyuncin.
Observacin Ejemplo
La negacin se puede emplear para 11000 = 00111
obtener el complemento disminuido
de la base. 110101 = 001010
Definicin p q pq
Operacin lgica binaria que resulta 0 0 0
cierta si dos proposiciones p y q son 0 1 0
ciertas. Su operador es (). Tiene 1 0 0
mayor precedencia que la disyuncin. 1 1 1
Ejemplo
Para la cadena MGH de 24 bits:
los bits en la posicin [23, 16]
representan la inicial del apellido
Observacin paterno
La conjuncin puede emplearse para los bits en la posicin [15, 8]
obtener informacin especfica de una representan la inicial del apellido
cadena de bits materno
los bits restantes representan la
inicial del nombre
Mediante la conjuncin, obtn la
inicial del apellido materno.
Definicin
p q pq
Operacin lgica binaria cuyo
resultado es cierto siempre que alguna 0 0 0
de las proposiciones p o q sea cierta. 0 1 1
Su operador es (). Tiene menor 1 0 1
precedencia que la negacin y la 1 1 1
conjuncin.
Ejemplo
Se tiene una cadena de 24 bits:
Los bits en la posicin [23, 16]
Observacin almacenan una A
La disyuncin puede emplearse para Los bits en la posicin [15, 8]
aadir o sustituir informacin almacenan una B
especfica de una cadena de bits Los bits restantes valen cero
Mediante la disyuncin, disea una
mscara que sustituya los ltimos bits
de la cadena por una Z.
Definicin p q pq
Operacin lgica binaria cuyo 0 0 0
resultado es cierto si las proposiones 0 1 1
son diferentes p y q son diferentes. Su 1 0 1
operador es . Tiene la misma 1 1 0
precedencia que la conjuncin.
Observacin
La disyuncin exclusiva puede usarse Ejemplo
para detectar qu tan diferentes son Comprueba que la cadena de
dos cadenas de bits son diferentes. Si caracteres ASCII BC es diferente de
son totalmente diferentes, el resultado BD
de la disyuncin exclusiva todo uno.
Pregunta
Cmo se define la operacin
lgica de la equivalencia?
En qu casos se usa?
1 Introduccin
3 Cdigos binarios
4 Procesamiento de la informacin
Aplicacin de las operaciones lgicas
Caractersticas
A pesar de que se componen por
Definicin cuatro enteros, solo se usa un
entero para representarlas (4
Las direcciones IP son los
bytes)
identificadores usados en la Internet.
Indican la direccin de subred de un Los enteros de las direcciones IP
equipo y la direccin del equipo estn en el rango [0, 255]
dentro de esa red. Un ejemplo Se representan en decimal para
particular de una direccin IP es facilitar su lectura
192.168.0.1. Los puntos tambin se usan para
delimitar cada byte, pero en
binario no se representan
Problema
Disee un programa que convierta una direccin IP escrita en decimal a cdigo binario. Para
esto:
Desde la terminal, reciba cuatro enteros decimales
Aplique operaciones lgicas para construir la direccin IP
Imprima la IP en binario, separando cada byte con un punto
Objetivos particulares
Familiarizar al alumno con los
Objetivo general
operadores lgicos booleanos
Aplicar las operaciones lgicas en una
Escribir cdigo en un editor de
computadora mediante su
cdigo fuente
programacin en lenguaje C.
Compilar un programa en la lnea
de comandos
Metodologa
1 Descripcin de las herramientas
Herramientas 2 Anlisis analtico del problema de
Editor de cdigo fuente visual la conversin a binario de
studio code direcciones IP
Compilador gcc 3 Diseo e implementacin de un
programa escrito en C que
imprima una IP en binario
1 Introduccin
3 Cdigos binarios
4 Procesamiento de la informacin
Aritmtica binaria
Procedimiento
La suma binaria se realiza de la
misma forma que la adicin decimal:
10 1 1 0 carry
1 se suma la columna del bit con
1 1 1 1 (15)10
posicin i, junto con su acarreo
+ 0 1 1 1 (7)10
de entrada
1 1 0 0 (12)10
2 en la columna i, se deja el bit 10 0 0 1 0 (34)10
menos significativo del resultado
y los bits restantes se convierten
en el acarreo de entrada la
columna i + 1
Procedimiento
Las reglas aritmticas para realizar una resta en decimal son las mismas que en binario, slo
que un prstamo en una columna dada aade dos unidades al bit del minuendo.
0 0 0 0 borrow 0 10 0 10 borrow
1 1 0 0 (12)10 1 0 1 0 (10)10
0 1 0 0 (4)10 0 1 0 1 (5)10
1 0 0 0 (8)10 0 1 0 1 (5)10
Actividad
En la Web, busca ejemplos que te
1 0 0 0 0 0
ayuden a entender el procedimiento de
0 0 0 0 1 0
la resta binaria. Enseguida, resuelve la
diferencia de la derecha indicando los
prstamos que correspondan.
Complemento a dos
Partiendo de un nmero con n bits, 10 1 1 0 carry
donde el bit n 1 representa el signo 1 1 1 1 (1)10
y los bits restantes la magnitud, la + 0 1 1 1 (+7)10
suma se efecta de la misma manera 1 1 0 0 (4)10
que en decimal, slo que el resultado 10 0 0 1 0 (+2)10
tiene exactamente n bits. Los acarreos
de salida se descartan.
Desbordamiento
Condicin que ocurre cuando el resultado de una adicin de nmeros con signo de n bits no
puede ser representado con n bits. Se detecta verificando si el acarreo de la columna n 1 es
diferente que el acarreo de salida.
0 0 0 0 carry 1 1 1 0 carry
1 1 0 0 (4)10 0 1 1 1 (+7)10
+ 1 0 1 1 (5)10 + 0 0 0 1 (+1)10
1 0 1 1 1 (+7)10 0 1 0 0 0 (8)10
Pregunta
Qu operacin lgica se emplea para
detectar el desbordamiento de la
adicion de nmeros en complemento a
dos?
Procedimiento
Cada par de dgitos decimales BCD se suman como si fueran nmeros binarios
Si el resultado de la suma es mayor que 1001, entonces al resultado se le suman 0110 para
producir un acarreo y el resultado correcto
0 0 0 1 0 0 0 1 0 0 0 0 carry
0 0 1 0 0 1 1 0 0 1 1 1 (267)10
+ 0 1 1 0 0 1 0 1 1 0 0 0 (658)10
1 0 0 1 1 1 0 0 1 1 1 1 partial
+ 0 0 0 0 + 0 1 1 0 + 0 1 1 0 six
0 1 0 0 1 1 0 0 1 0 1 0 1 0 1 (925)10
Procedimiento
1 1 1 (7)10
Se efecta de la misma forma que la 1 1 1 (7)10
multiplicacin decimal, solo que 0 0 0 0 0 1 1 1 (7)10
requiere hacer sumas en binario. Si los 0 0 0 0 1 1 1 0 (14)10
nmeros a multiplicar son de n bits, el + 0 0 0 1 1 1 0 0 (28)10
resultado necesita 2n bits para ser 0 0 1 1 0 0 0 1 (49)10
representado
Procedimiento
Se lleva a cabo de la misma forma
que la divisin decimal, solo que
involucra restas en binario.
Definicin
Operacin binaria que desplaza cierto
nmero de posiciones, ya sea a la
izquierda o a la derecha, una cadena
de bits. Existen cuatro tipos: Operadores
desplazamiento lgico a la (srl) >>
derecha (srl) (sll) <<
desplazamiento lgic a la (sra) >>>
izquierda (sll) (sla) <<<
desplazamiento aritmtico a la
derecha (sra)
desplazamiento aritmtico a la
izquierda (sla)
Universidad Autnoma Metropolitana Adn G. Medrano-Chvez 91
Procesamiento de la informacin Aritmtica binaria
Desplazamiento lgico a la
derecha Ejemplos
Mueve una cadena de bits de n bits k 10000 >> 3 = 000_10
posiciones a la derecha, insertando k 01010000 >> 2 = 00_010100
ceros por la parte de la izquierda de la 01010000 >> 8 = 00000000
cadena.
Desplazamiento lgico a la
izquierda Ejemplos
Mueve una cadena de bits de n bits k 00001 << 3 = 01_000
posiciones a la izquierda, insertando k 01010000 << 2 = 010000_00
ceros por la parte de la derecha de la 00000101 << 4 = 0101_0000
cadena.
Observacin Ejemplos
El desplazamiento lgico a la 00001 << 3 = 01_000
izquierda equivale a multiplicar un (1)(23 )
nmero por 2k , donde k es el nmero
00000101 << 4 = 0101_0000
de posiciones que la cadena se
(5)(24 )
desplazar.