0% encontró este documento útil (0 votos)
29 vistas36 páginas

Sistemas de Numeración y Aritmética Digital

Cargado por

Adam Perez
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
29 vistas36 páginas

Sistemas de Numeración y Aritmética Digital

Cargado por

Adam Perez
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

TEMA 2.

Sistemas de numeración, aritmética y


códigos
• Sistemas de representación numérica:
 Definiciones.
 Sistemas de numeración posicional.
 Conversión entre bases.
• Representación de números negativos
 Signo-magnitud, complemento a 1, complemento a 2.
• Operaciones aritméticas en binario.
• Códigos digitales:
 Numéricos y alfanuméricos: Códigos Gray, con exceso, BCD
y ASCII.
 Códigos detectores y correctores de error.

• Bibliografía: Capítulo 2 y Apéndice B de [Floyd, 06] y


Capítulo 1 de [Nelson, 96] excepto números en punto flotante
y división.
Sistemas de representación

Los sistemas de representación de números se llaman sistemas de


numeración.

•Cifras o dígitos: los símbolos que se usan para representar números.


•Base de un sistema de numeración: el cardinal del conjunto de cifras.
•Sistema de numeración posicional: cada dígito tiene un peso de
acuerdo con su posición.
•En la representación de un número:
el dígito más a la izquierda es el más significativo (el de más peso)
el dígito más a la derecha es el menos significativo (el de menos
peso)
Ejemplos: Sistema de numeración decimal, sistema de numeración
binario, sistema de numeración octal y sistema de numeración
hexadecimal.
Sistemas de numeración decimal y binario
Sistema decimal
• Es un sistema de numeración posicional.
• Cada posición tiene un peso potencia de 10 (la base).
• 10 dígitos diferentes: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.

10 2 101 100 . 10 −1 10 −2 10 −3 El punto decimal


Ejemplo : separa parte entera y
1 0 −1
23.4 2 ×10 + 3×10 + 4 ×10 parte fraccionaria

Sistema binario
• Es un sistema de numeración posicional de base 2.
• Dígitos diferentes: 0, 1.
Ejemplo :
10 . 11 1× 21 + 0 × 20 +1× 2−1 +1× 2−2 2.75
En binario En decimal
Sistema de numeración binario
Contar en binario
• Con n bits para cifras enteras puedo
representar: 0 2n −1
• Ejemplo:
1
n=5 11111 2 n − 1 = 31

• Cada sistema de numeración tiene su


propia aritmética definida por las
1 operaciones aritméticas básicas:
1 1 suma y multiplicación.
1 1
1 1
• En un sistema de numeración posicional
1 1
1 1 multiplicación y división por la base son
1 1 1
inmediatas.
Conversión de decimal a binario
• Método de la división sucesiva por 2. Para pasar de decimal a
binario.
• Método de la multiplicación sucesiva por 2. Para convertir
decimales fraccionarios a binarios.

-
+

-
+
Continuar hasta obtener el número de posiciones
decimales deseadas o cuando la parte fraccional sea
toda cero.

Ejemplo de división sucesiva por 2. Ejemplo de multiplicación sucesiva por 2.


Ejemplo de sistema digital

Sistema que realiza una función de conteo de bolas


Operaciones aritméticas en binario
• Suma. • Resta • Multiplicación.
A B Acarreo Suma A B Préstamo Resta A B producto
0+0 = 0 0 0−0 = 0 0 0×0 = 0
0 +1 = 0 1 0 −1 = 1 1 0 ×1 = 0
1+ 0 = 0 1 1− 0 = 0 1 1× 0 = 0
1+1 = 1 0 1 −1 = 0 0 1× 1 = 1
• La suma de números binarios se realiza comenzando por la derecha
y propagando el acarreo hacia la izquierda.
• El producto de números binarios se realiza como en decimal,
desplazando cada producto parcial una posición a la izquierda.
• La resta de 0 y 1 exige un préstamo en la columna de bits
inmediatamente a la izquierda.
• Overflow o desbordamiento: se produce cuando el resultado de
una operación necesita un número de bits mayor que el número de
bits de los operandos.
Ejemplo. Si sumamos 2+2 en binario con dos bits se producirá overflow.
Representación de número binarios con signo
• Es necesario representar signo y magnitud del número.
• Tres formatos binarios:
 Sistema signo-magnitud.
 Sistema del complemento a 1.
 Sistema del complemento a 2.
Signo-magnitud (SM)
 El bit más a la izquierda es el bit de signo ( 1 si es negativo y 0 si
positivo)
 Los bits de magnitud son los restantes y están codificados en binario
puro tanto para los positivos como para los negativos.
 Con n bits se pueden representar números x en el intervalo siguiente
(tenemos 2 representaciones diferentes para el 0):
− (2n−1 −1) ≤ x ≤ (2n−1 −1)
Ejemplo: Expresar en signo-magnitud los números 25 y -25.
25 000011001 − 25 100011001

bits de signo bits de magnitud


Números binarios con signo: complemento a 1 (C1)
 El bit más a la izquierda es el bit de signo.
 Los números positivos se representan igual que en signo magnitud.
 Los números negativos se representan como el complemento a 1 del
correspondiente número positivo.
 Hacer el complemento a 1 de un número es cambiar cada 0 por un 1 y
viceversa.
 Con n bits se pueden representar números x en el intervalo:
n−1
− (2 −1) ≤ x ≤ (2n−1 −1)
 Hay dos posibles representaciones para el 0.
Ejemplo: Expresar en 9 bits en complemento a 1 los números 25 y -25.

¿Qué número
25 000011001 decimal representa el
bits de signo número 1110 si está
expresado en C1?
− 25 111100110
El número -1.
Números binarios con signo: complemento a 2 (C2)

El bit más a la izquierda es el bit de signo.


 Los números positivos se representan igual que en signo magnitud.
Los números negativos son el complemento a 2 del correspondiente
número positivo.
Una forma de calcular la representación en complemento a 2 de n bits de
un número binario N de n bits: se calcula la diferencia 2n-N en binario y
se toman los n bits más a la derecha.
Intervalo de representación con n bits:
− 2 n −1 ≤ x ≤ (2 n −1 − 1)

Regla para calcular el complemento a 2 de un número de forma rápida:


hacer el complemento a 1 de dicho número y sumar 1 al bit menos
significativo.
La regla anterior no es válida en el extremo del intervalo de
representación (para el número más negativo que se puede representar).
Números binarios con signo: complemento a 2

Ejemplo: Expresar en complemento a 2 los números 25 y -25.

25 000011001

111100110
+ 1
− 25 111100111

¿Qué número
decimal representan
los números 1101 y Los número -3 y 3.
0011 si están
expresados en C2?
Representación de números con signo

• Representar el
número -8 en C2
utilizando 4 bits:
1000

• Representar el
mismo número en C2
utilizando 5 bits:
11000

Obtener la representación de un número binario N en C2 utilizando n


bits realizar en binario la operación 2n - N
Operaciones aritméticas en C2
• Suma y resta. Se expresa cada operando en notación C2 de
modo que al final se realice suma de operandos con signo y se
realiza la suma en binario bit a bit de los operandos despreciando
el acarreo final.
− 14 11110010 +
−9 11110111
− 23 111101001 Acarreo que se desprecia

Realizar en 8 bits y en complemento a 2 la resta de 8 y 3

8 00001000 +
−3 11111101 El C2 de 00000011 (3)

5 100000101
Si los dos operandos son de igual signo puede haber desbordamiento.
Si se ha producido desbordamiento (overflow) el signo del resultado
será incorrecto.
Operaciones aritméticas en C2

• Producto. Se hace como en decimal, sumando productos


parciales desplazados.
 Se pasan los negativos a su versión positiva en complemento
a 2, se multiplican en binario sólo los bits de magnitud y:
• Si el resultado debe ser positivo: se añade un 0 en la posición
más significativa.
• Si el resultado debe ser negativo: se calcula el complemento a
2 del resultado y luego se añade un bit 1 en la posición más
significativa.

Realizar el producto de
-3 y 4 utilizando el mínimo ¿ El resultado será 1110100 ?
número de bits que sea
necesario.

Realizar también el producto de -3 y -4 codificando cada operando y el


producto en 5 bits. El resultado será 01100.
Operaciones aritméticas en C1
• Suma y resta.
 Se expresa cada operando en C1 con el signo que corresponda
de modo que se haga la suma de dos números de igual o
diferente signo.
 Se suman los operandos bit a bit en binario y si el acarreo final
es igual a 1, se suma 1 al resultado de la suma.
 En caso de que ambos operandos sean del mismo signo puede
producirse desbordamiento. En ese caso el bit de signo del
resultado que obtendremos al operar será incorrecto.
Realizar en 6 bits y en complemento a 1 la resta de 8 y 3

8 001000 +
−5 111010 El C1 de 000101 (5)

1000010 +
1
3 000011
Operaciones aritméticas en SM

• Suma y resta. Se expresa cada operando en notación SM y si los


operandos son del mismo signo se suman sólo los bits de
magnitud, si son de diferente signo se restan los bits de magnitud.
Se añade al final el bit de signo.

− 14 1001110 +
−7 1000111 Suma de bits de magnitud

− 21 010101 No hay bit de acarreo en la suma


Si hay un bit de acarreo 1 en la suma esto indicará que se ha
producido overflow (desbordamiento).

Añadir el bit de signo adecuado al resultado de la suma anterior:

1010101
Operaciones aritméticas en SM
• Suma y resta. Una alternativa sencilla para sumar y restar en
SM es pasar ambos operandos a C1, operar en C1 y convertir el
resultado de nuevo a SM.
SM C1
− 14 1001110 + 1110001
+
−7 1000111 1111000
Al haber acarreo
11101001 + hay que sumar 1
1 al resultado
− 21 1101010
Ahora hay que comprobar si ha habido desbordamiento igual que se hace en
C1 (si el bit de signo del resultado no es correcto hay desbordamiento). En
este caso no hay desbordamiento.
Finalmente hay que convertir de nuevo a SM manteniendo el bit de signo y
complementando uno a uno el resto de los bits.
El resultado final en SM es:
1010101
Sistema de numeración octal
• Sistema de numeración posicional de base 8.
• Dígitos diferentes: 0, 1, 2, 3, 4, 5, 6, 7.
• Contar: 0, 1, 2, 3, 4, 5, 6, 7, 10 , 11, 12, 13, 14, 15, 16, 17, 20, 21 …

• Conversión de octal a decimal: método de sustitución de una serie.

• Conversión de octal a binario y de binario a octal: método de


conversión a potencias de la base. Para pasar de octal a binario ir
convirtiendo una a una por separado cada cifra de octal a binario. Para pasar de
binario a octal ir agrupando las cifras de tres en tres y convirtiéndolas a octal.
Sistemas de numeración octal y hexadecimal

• Conversión de decimal a octal: pasar el número a binario y


agrupar las cifras de tres en tres a partir del punto decimal.

010011.11010 23.64 (en octal)


2 3 6 4

Sistema de numeración hexadecimal


• Sistema de numeración posicional de base 16.
• Dígitos diferentes: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F.
• Contar:
… , D, E, F, 10, 11, 12, 13, … , 19, 1A, 1B, 1C, … , 1F, 20, 21, … hexadecimal
… , 13, 14, 15, 16, 17, 18, 19, … , 25, 26, 27, 28, … , 31, 32, 33, … decimal
Ejemplos de conversión
• Conversión de hexadecimal a binario: ir convirtiendo una a una por
separado cada cifra hexadecimal a binario.

• Conversión de binario a hexadecimal: agrupar las cifras binarias en grupos


de 4 empezando por la derecha e traducirlas a hexadecimal.

• Conversión de decimal a hexadecimal: pasar el número a binario y


agrupar las cifras de cuatro en cuatro a partir del punto decimal.

010011 . 1101 01 13.D4 (en hexadecimal)


1 3 13 4
Algoritmos generales de conversión

• Algoritmo 1.1. Para convertir un número de base A a base B


utilizamos, como ya vimos anteriormente en este tema:
 Método de sustitución de una serie con aritmética de base B
 Método de división entre la base o multiplicación por la base con
aritmética en base A.

Problema: Según de qué bases se trate puede ser necesario operar en


aritméticas poco habituales e “incómodas”. En ese caso podemos
aplicar el siguiente algoritmo.

• Algoritmo 1.2. Para convertir un número de base A a base B


utilizamos:
 Método de sustitución de una serie con aritmética en base 10 para pasar
de base A a base 10, y
 Método de división entre la base o multiplicación por la base en aritmética
decimal para convertir de base 10 a base B.
Codificación en BCD
 Cada dígito decimal se representa en binario puro utilizando 4 bits.
 Paso directo de un número decimal a BCD. Intuitivo.
 Se conoce también como código 8-4-2-1
Suma de números en BCD
• Se distinguen dos casos.
 La suma de dos dígitos decimales es <= 9. En este caso el
resultado es correcto.
 La suma de dos dígitos decimales es > 9. Hay desbordamiento y
es necesario sumar en binario 6 al resultado para obtener una
configuración correcta y pasar el acarreo a la cifra siguiente.

Cifras de la Suma de 67 y 53
derecha suman
más de 9.
Sumamos 6 a la
suma de la
derecha
Obtenemos
número correcto.
Codificación en exceso a 3
 Cada dígito decimal se obtiene sumando 3 a su representación BCD.
 Es un código sin pesos (no hay un peso específico asignado a cada posición).
 Se usan 10 de las 16 posibles combinaciones binarias de 4 bits.
Código Gray
 Es un código sin pesos.
 Las codificaciones de números consecutivos se diferencian en un único bit, se
dice que tienen distancia 1.
 Él código Gray puede ser de cualquier número de bits.
 La distancia entre dos palabras de un código se define como el número de bits
en que difieren ambas palabras.
Código Gray de 4 bits para los decimales del 0 al 15

Este código de 4 bits es cíclico por diferenciarse en un solo bit la


codificación de los extremos del intervalo.
Conversión entre código Gray y binario

• De binario a Gray. Coincide el bit más significativo. De izquierda a


derecha ir sumando cada par de bits adyacentes del código
binario. Despreciar acarreos.

• De Gray a binario. Coincide el bit más significativo. Luego, de


izquierda a derecha ir sumando cada bit del código Gray con el
del número binario que esté en posición adyacente.
Códigos con paridad detectores de error
 Códigos con paridad. Son códigos redundantes ya que algún bit llamado bit de
paridad indica únicamente si el número de bits del código es par o impar.
 Se dice que un código tiene distancia mínima 2 si a partir de una palabra válida
del código hay que cambiar al menos 2 bits para obtener otra palabra válida.
 Para detectar errores en 1 bit el código debe tener distancia mínima 2.

Si el código tiene distancia =2 como mínimo pueden detectarse errores en 1 bit ya que la
palabra errónea no pertenecerá al código, pero no podrá corregirse
Códigos Hamming correctores de error
 Podemos detectar y además corregir errores en un bit de las palabras del
código si distancia=3 como mínimo y suponiendo que la probabilidad de errores
simples es alta. Ejemplo: código Hamming de distancia mínima 3 con paridad par
que codifica en el mensaje las cifras del 0 al 9 en binario puro.

P1 P2 P4 •M3, M5, M6, M7 -> bits de mensaje


•P1, P2, P4 -> bits de paridad par

•P1 es la paridad de M3, M5 y M7


•P2 es la paridad de M3, M6 y M7
•P4 es la paridad de M5, M6 y M7
En el receptor calculo la paridad de:
• C1 (LSB) -> P1, M3, M5 y M7
• C2 -> P2, M3, M6 y M7
• C4 (MSB) -> P4, M5, M6 y M7
Si alguno de los cálculos da paridad
 Conociendo el tamaño de mensaje (m) puedo decidir impar es que hay error y los Ci
indican la posición del bit erróneo.
el número de bits de paridad que necesito para crear
un código Hamming corrector de errores en un bit:
¿Hay error si recibo
utilizando el código
K es el número de bits de chequeo (bits de paridad) de la tabla el
m es el número de bits del mensaje mensaje 0111010?
Ejemplo: En la tabla anterior m=4 y k=3 Si lo hay, ¿Dónde?
Código Hamming SEC/DED
• Es un código de distancia mínima = 4 que permite corrección de errores
simples (en 1 bit) y detección de errores dobles (aunque no corrección).
• Para 4 bits de mensaje añade los 3 bits de paridad del código con distancia 3
y 1 bit de paridad total PT.
 P1 es la paridad de M3, M5 y M7
Código -> P1 P2 M3 P4 M5 M6 M7 PT  P2 es la paridad de M3, M6 y M7
M3, M5, M6 y M7 -> bits de mensaje  P4 es la paridad de M5, M6 y M7
P1, P2, P4 y PT -> bits de paridad  PT es la paridad de todos los otros
bits del código ( 7 bits)

C1, C2, C4 y CT -> bits de comprobación C1 a partir de P1,M3, M5, M7


de paridad C2 a partir de P2, M3, M6, M7
Situaciones: C4 a partir de P4, M5, M6, M7
• No hay error CT a partir de PT, P1, P2, P4, M3,
M5, M6 y M7.
o CT=0 y todos los Ci=0
• Detección de errores dobles Las comprobaciones de paridad se
o CT=0 y algún Ci=1 pueden realizar mediante puertas
• Corrección de errores simples EXOR.

o CT=1 y algún Ci=1 (los Ci dan la posición de error)


• Corrección de errores simples en el bit de paridad total PT
o CT=1 y todos los Ci=0
Códigos alfanuméricos

• Son códigos que permiten representar no sólo números sino también letras y
otros símbolos.
• Información que necesitaría codificar:
 las 26 letras del alfabeto
 las 10 cifras decimales
 los signos especiales (puntuación, punto y coma,…)
 códigos de control
 el alfabeto griego, …

• Hay cientos de estándares de codificación pero nos centraremos en dos:


 ASCII (código estándar americano para el intercambio de información)
por su uso extendido y su importancia histórica
 UNICODE por ser el estándar más actual y que aglutina otras iniciativas
además de incluir al ASCII.
Códigos alfanuméricos: ASCII
Dispone de 128 caracteres codificados en código binario de 7 bits (se
añade un cero en la posición más significativa y se considera de 8 bits).

Permite codificar:
Caracteres de A a Z, en mayúsculas y en minúsculas
Caracteres especiales (<, >, ?, …)
Números del 0 al 9.
Códigos de control especiales para control de dispositivos.
Código ASCII extendido: Además del ASCII incorpora otros 128
caracteres adicionales y utiliza 8 bits. Fue adoptado inicialmente por
IBM para sus PCs.
Codifica:
Caracteres alfabéticos no ingleses, símbolos no ingleses, letras
griegas, símbolos matemáticos, caracteres no gráficos, caracteres
gráficos de barras y caracteres sombreados, …
Código ASCII
Códigos alfanuméricos: UNICODE
Estándar para la codificación de texto a nivel mundial. Incluye
caracteres en diferentes idiomas, símbolos de puntuación,
códigos de control, …

[Link]

• Esfuerzo conjunto desde 1992 de diferentes organizaciones


para unificar estándares:
 Apple Computer, Borland, Digital, Hewlett-Packard,
International Business Machines, Lotus, Microsoft (lo eligió
como estándar para Windows NT), …
• Permite procesar y comunicar información en cualquier lengua
y producir software que pueda ser utilizado en cualquier
lengua.
• Soluciona el problema de codificaciones estándar sin suficiente
espacio para todos los símbolos que es necesario codificar.
Códigos alfanuméricos: UNICODE
• Codifica también por ejemplo caracteres fonéticos del chino o coreano y formas
de escritura históricas poco utilizadas como sumerio o fenicio.
• Características importantes:
 codificación única (una letra que aparece en diferentes idiomas presenta
una única codificación UNICODE)
 Cada carácter esta representado por un code-point desde U+000016 hasta
U+10FFFF16 con un total de 1.114.112 códigos (los 128 primeros coinciden
con ASCII)
 Usa símbolos de longitud variable (de 1 a 4 bytes por carácter Unicode).
 3 modelos de codificación posibles:
 UTF-8 (entre 1 y 4 bytes por cada carácter Unicode y permite
representar todos los caracteres),
 UTF-16 (usa longitudes de 2 o de 4 bytes dependiendo del carácter)
 UTF-32 (4 bytes por carácter Unicode).
Códigos alfanuméricos: UNICODE

 La última versión de Unicode Standard es la Unicode 15.0.0 Incluye


símbolos matemáticos, signos de puntuación, emoticonos…

 En total 136.090 caracteres. Incluye 56 nuevos emoticonos respecto


del anterior estándar ([Link]

 Detalles de la última versión:


[Link]

 En [Link] podéis ver la tabla completa


TEMA 3. Análisis y síntesis de
circuitos lógicos combinacionales

• Fundamentos del álgebra de Boole.


• Funciones de conmutación y su análisis.
 Representaciones: tablas de verdad y formas algebraicas.
 Formas canónicas: SOP y POS.
 Funciones incompletamente especificadas.
• Puertas lógicas: soluciones integradas.
• Simplificación de funciones de conmutación.
• Síntesis de circuitos lógicos combinacionales.
 Conjuntos universales de módulos.
 Síntesis mediante redes de dos niveles.

Bibliografía: Capítulos 2 y 3 [Nelson, 96].

También podría gustarte