Вы находитесь на странице: 1из 36

UNIVERSIDAD NACIONAL DE CATAMARCA

Facultad de Tecnología y Ciencias Aplicadas


Arquitectura de Computadores

Unidad N° 1

Representación de la
Información

Facultad: Tecnología y Ciencias Aplicadas


Departamento: Informática
Cátedra: Arquitecturas de Computadores
UNIVERSIDAD NACIONAL DE CATAMARCA
Facultad de Tecnología y Ciencias Aplicadas
Arquitectura de Computadores
Introducción

En esta unidad se presentan los elementos matemáticos básicos que se emplean en el


diseño y análisis de los sistemas digitales.
Comenzaremos definiendo que es un sistema digital diciendo que, es cualquier sistema de
procesamiento y/o transmisión de información bajo forma de señales discretas, es decir
información que solo puede asumir valores discretos
Si esta información (señales) solo puede asumir uno de dos valores posibles diremos que el
sistema es binario.

Sistemas Analógicos Y Digitales

Una magnitud digital: es aquella que varía a intervalos discretos, solo admite algunos
valores determinados, separados entre sí por intervalos finitos.
Una magnitud analógica es la que puede asumir cualquier valor continuo dentro de un rango
definido.

Figura 1-0: Representación gráfica de magnitudes digitales y analógicas

A los efectos de diferenciar entre un sistema digital de un sistema analógico supongamos el


sistema de la figura 1-1, donde un sistema electrónico indica el nivel de agua dentro de un
tanque, en este caso el nivel de agua esta determinado por el potenciómetro (R), este valor
varia en forma continua a medida que el flotante sube o baja acompañando el nivel del agua
y hace mover el cursor del potenciómetro, el Medidor muestra en una escala continua el
nivel del agua en el tanque, constituyendo esto un sistema analógico

Figura 1-1: Sistema analógico para informar sobre el nivel de agua en un tanque

Si el indicador de nivel lo construyésemos según el esquema de la Figura 1-2, la información


del nivel de agua en el tanque no varia en forma continua sino que asume valores discretos,
encendiéndose un led determinado, según el nivel de agua en el tanque, constituyendo esto
un sistema digital.

Página 1
UNIVERSIDAD NACIONAL DE CATAMARCA
Facultad de Tecnología y Ciencias Aplicadas
Arquitectura de Computadores

Figura 1-2: Sistema digital para informar sobre el nivel de agua en un tanque

Como se puede apreciar el sistema digital no representa todos los valores posibles que
puede tomar el nivel del agua en el tanque pero puede diseñarse un sistema tan preciso
que represente todos los niveles o valores que el usuario del sistema desee conocer.

Ventajas de los sistemas digitales

A continuación se resumen muy sintéticamente las ventajas de los sistemas digitales:


1) Son más sencillos y económicos, en cuanto al diseño se refiere.
2) Son más seguros y precisos.
3) La información digitalizada es más simple de almacenar
4) Son más resistentes a la interferencia de ruidos externos
Uno de los principales problemas de los sistemas analógicos es el ruido eléctrico,
perturbaciones que modifican el valor de la señal. En las señales digitales, el ruido solo
afecta sistema se supera en margen de tensión entre un nivel y otro (Figura 1-3)

Figura 1-3: Perturbaciones sobre señales analógicas y digitales

Sistemas Numéricos

Los sistemas de numeración son conjuntos de dígitos usados para representar cantidades,
así se tienen los sistemas de numeración decimal, binario, octal, hexadecimal, etc. Estos
sistemas se caracterizan por tener una base (número de elementos utilizados para la
representación: diez, dos, ocho, dieciséis respectivamente).
Base: es la cantidad de símbolos que utiliza el sistema para representar las cantidades.
Una cantidad (magnitud) se representa por una cadena de elementos, y cada elemento de la
cadena tiene un valor asociado a la posición que ocupa dentro de la cadena, estos sistemas
de numeración se llaman también sistemas de numeración posicionales. Así, la cantidad
“33” esta representada por una cadena de dos elementos ‘3’ y el valor del ‘3’ de la derecha
no es igual al valor del elemento ‘3’ de la izquierda.

Página 2
UNIVERSIDAD NACIONAL DE CATAMARCA
Facultad de Tecnología y Ciencias Aplicadas
Arquitectura de Computadores
Digito de mayor peso 3 3 Digito de menor peso

3 * 101 + 3 * 100

peso peso

Esta característica nos permite definir los sistemas de numeración posicionales, donde un
elemento vale por lo que representa y por la posición que ocupa.

El Sistema de Numeración Decimal

El sistema de numeración decimal es el más usado, tiene como base el número 10, o sea
que posee 10 símbolos diferentes para representar cualquier cantidad numérica.

0, 1, 2, 3, 4, 5, 6, 7, 8, 9
La posición de cada símbolo en un numero decimal indica la magnitud de la cantidad
representada y se le puede asignar un ‘peso’. Los ‘pesos’ para los números enteros son
potencias de 10, que aumentan de derecha a izquierda comenzando por 100 = 1
Por ejemplo el número decimal 72410 puede ser representado como:

72410= 7. 102 + 2. 101 + 4.100

Para los decimales los pesos son potencias de 10 que aumentan de derecha a izquierda
comenzando por 10 –1

0,2310 = 0.100+2.10-1 + 3.10-2


Todo número entero N representado en cualquier base, puede descomponerse de modo
único en la forma:
n -1
N = ∑ Ai bi = An  bn + An-1  bn-1 + … + A1  b1 + A0  b0 + A-1  b-1 + A-2  b-2 + …
i=0

Dónde: b es la base del número N representado en decimal.


Ai : (i = 0,1,2,....,k) dígito i-ésimo del número
n - 1 : es la cantidad de dígitos enteros que tiene el número

Ahora nos podríamos preguntar por qué tenemos como sistema de numeración usual al
sistema decimal, por qué es el más usado por todo tipo de gente, a qué se debe que en todo
el mundo sea el sistema utilizado por las personas (ya que las máquinas no usan el sistema
decimal, sino el binario). La razón es que porque tenemos 10 dedos. Intuitivamente,
utilizábamos nuestra elemental calculadora: las manos, para contar, realizar sumas y restas
sencillas, etc.

Sistema Binario

El sistema numérico binario es un sistema posicional de base 2, es decir que posee dos
símbolos para representar cualquier cantidad numérica.

0,1

El equivalente decimal de un número binario se puede obtener a partir del polinomio antes
mencionado, de tal forma que

110102 = 1 * 24 + 1 * 23 + 0 * 22 + 1 * 21 + 0 * 20 = 2610

Ejemplo: Convertir a decimal el número 101001012

Página 3
UNIVERSIDAD NACIONAL DE CATAMARCA
Facultad de Tecnología y Ciencias Aplicadas
Arquitectura de Computadores
101001012 = 1* 27+0 * 26+1 * 25+0 * 24+0 * 23+1 * 22+0 * 21+1 * 20 =16510

Ejemplo: Convertir a decimal el número 11,0112

11,0112 = 1 * 21 + 1 * 20 +0 * 2-1+ 1 * 2-2 +1 * 2-3 = 3,37510


Los símbolos de un número binario se llaman bits.
La razón de ser del sistema binario, es que la información que se manipula dentro de un
sistema digital se hace de acuerdo a señales eléctricas. Mediante una señal eléctrica alta,
se representa el valor ‘1’ y mediante una señal eléctrica baja se representa el ‘0’.
Existen diferentes formas de codificar la información en el sistema binario, la más usual es la
codificación en binario natural, en esta forma de representación cada número es
representado por un código de n bits, En la tabla 1-1 se representan los primeros 16
números binarios.

Circuitos digitales y el Sistema binario


Ahora que ya tenemos un poco más claro el concepto de número y las diferentes formas
que tenemos de representarlo, podemos analizar el esquema de un circuito digital como el
de la figura

Figura 1.x: Un circuito digital con tres bits de entrada y 4 de salida

Los circuitos digitales manipulan números que están representados en binario. Así
podemos decir que un circuito digital actual tiene como entradas y salidas números en
binario. Es decir, números que vienen expresados con los dígitos ’0’ y ’1’. En la figura 1.x se
ha dibujado un circuito digital con 3 señales de entrada y cuatro señales de salida. Cada una
de las entradas y salida representa un dígito binario. ¿Pero cual es el peso de este dígito?
Eso nos lo indican los subíndices de las letras E y S. Así, la entrada E0 se corresponde con
el dígito de menor peso, la entrada E1 con los dígitos de peso 21, y así sucesivamente hasta
la entrada n que es la de mayor peso. Lo mismo es aplicable a la salida.
En los circuitos digitales, los números que se procesan, están expresados en binario,
tanto en la entrada como en la salida.
Un dígito binario, que puede ser ’0’ ó ’1’, recibe el nombre de BIT, (BInary digiT).
Utilizaremos los bits para indicar el tamaño de las entradas y salidas de nuestros circuitos.
Los circuitos digitales operan con números en binario, sin embargo a los humanos nos es
más cómodo trabajar en decimal. Trabajar con número binarios puede parecer “poco
intuitivo”. Vamos a ver cómo en determinadas ocasiones resulta muy intuitivo el trabajar con
números binarios.
Imaginemos que en una habitación hay 5 lámparas situadas en la misma línea, y que cada
una de ellas puede estar encendida o apagada. ¿Cómo podríamos representar el estado de
estas 5 lámparas mediante números? Una manera muy intuitiva sería utilizar el sistema
binario, en el que utilizaríamos el dígito 1 para indicar que la bombilla está encendida y el
dígito 0 para indicar que está apagada. Así el número 01011 nos indica que la primera
bombilla está apagada, la segunda encendida, la tercera apagada y las dos últimas
encendidas, como se muestra en la figura 1.y. Esta forma de representar el estado de las
lámparas es bastante intuitiva. Este es un ejemplo en el que se puede ver que “pensar” en
binario resulta más fácil que hacerlo directamente en decimal.

Página 4
UNIVERSIDAD NACIONAL DE CATAMARCA
Facultad de Tecnología y Ciencias Aplicadas
Arquitectura de Computadores

Figura 1.y: Utilización del sistema binario para expresar el estado de 5 bombillas

Sistema Numérico Hexadecimal

El Sistema Numérico hexadecimal consta de 16 símbolos para representar cualquier


magnitud numérica.

0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F
Dónde: A16 equivale a 1010
B16 equivale a 1110
C16 equivale a 1210
D16 equivale a 1310
E16 equivale a 1410
F16 equivale a 1510.

Este sistema se utiliza para compactar la información binaria., que es engorrosa de


manejar. Se utiliza un dígito hexadecimal para representar una cadena de 4 dígitos binarios.

Por ejemplo el número 0001111100102 es más fácil de representar mediante su


correspondiente número en base hexadecimal. Compactamos entonces toda esa cadena de
información binaria en sólo 4 dígitos de información en base hexadecimal. El proceso para
llevar a cabo este cambio es sencillo. De derecha a izquierda de la cadena numérica, se van
tomando cadenas de 4 dígitos binarios, y se transforman a su correspondiente dígito
hexadecimal.

0001111100102 Realizando grupos de 4 bits : 0001 0101 1010 = 15A16

Sistema Numérico Octal

El Sistema Numérico Octal consta de 8 símbolos para representar cualquier cantidad


numérica.

0,1,2,3,4,5,6,7
Al igual que la base hexadecimal, en nuestro caso estos dos sistemas de numeración tienen
importancia y se utilizan por cuanto permiten compactar información binaria en forma
sencilla, pero en este caso, la compactación es menor. Mientras que en la base hexadecimal
con un sólo dígito se puede representar una cadena de 4 dígitos binarios, en la base octal
un dígito sólo puede representar 3 dígitos binarios. Los dígitos posibles para la base octal,
evidentemente, son los que van del 0 al 7.
En resumen, para aquellos sistemas de numeración donde la base es un múltiplo de 2n,
podemos decir que:
Paso de la base 2 a la base 2n: se agrupan los bits de n en n, de derecha a izquierda

Paso de la base 2n a la base 2: se expande cada digito por los n bits correspondientes

Página 5
UNIVERSIDAD NACIONAL DE CATAMARCA
Facultad de Tecnología y Ciencias Aplicadas
Arquitectura de Computadores

Decimal Binario Octal Hexadecimal


0 0000 00 0
1 0001 01 1
2 0010 02 2
3 0011 03 3
4 0100 04 4
5 0101 05 5
6 0110 06 6
7 0111 07 7
8 1000 10 8
9 1001 11 9
10 1010 12 A
11 1011 13 B
12 1100 14 C
13 1101 15 D
14 1110 16 E
15 1111 17 F
Tabla 1-1 números en bases diferentes

Cambio de Base

Como ya se vio anteriormente, en un sistema con representación polinomica, donde los


pesos crecen en forma geométrica, podemos pasar de una representación de una magnitud
en un sistema con base b a un sistema de numeración de base 10 por aplicación del
polinomio

N = An bn + An-1 bn-1 + … + A1 b1 + A0 b0 + A-1 b-1 + A-2 b-2 + …

Ejemplo: Convertir el número (11101)2 a base 10.

24 23 22 21 20
1 1 1 0 1 = 1.20 + 0.21 + 1.22 + 1.23 + 1.24
= 1 + 4 + 8 + 16 = 2910
Ejemplo: Convertir el número binario (1111100)2 a base 10

26 25 24 23 22 21 20
1 1 1 1 1 0 0 = 1.26 +1.25 + 1.24 + 1.23 + 1.22 + 0.21 + 0.20
= 64 + 32 + 16 + 8 + 4 = 12410

Se demuestra fácilmente que si se divide un numero entero b1 por la base b2 y al cociente se


lo vuelve a dividir por b2 y así sucesivamente, el ultimo coeficiente y los restos obtenidos
forman el numero en base b2.

N b1 = An b2n + An-1 b2n-1 + … + A1 b21 + A0 b20 = Nb2

Dividiendo por b2

Página 6
UNIVERSIDAD NACIONAL DE CATAMARCA
Facultad de Tecnología y Ciencias Aplicadas
Arquitectura de Computadores
N b1 = An b2n + An-1 b2n-1 + … + A1 b21 + A0 b20
b2 b2 b2 b2 b2

= An b2n-1 + An-1 b2n-2 + … + A1 b20 + A0/ b20

cociente resto

Ejemplo: Convertir el número (29)10 en su equivalente en binario.

El número obtenido es: (0 1 1 1 0 1)2 = 2910

29 2
1 14 2
0 7 2
1 3 2
1 1 2
1 0
Ejemplo: Convertir el número decimal 4573 al sistema hexadecimal

4573 16
13 285 16
13 17 16
1 1

El número obtenido es (4 5 7 3) 10 = 11DD16

Ejemplo: Convertir el número decimal 1036 al sistema octal

1036 8
4 129 8
1 16 8
0 2

El número obtenido es (1 0 3 6) 10 = 20148

Ejemplo: Convertir el número binario 011100000001,11000100 a hexadecimal y a octal

a) Hexadecimal
0111 0000 0001 , 1100 0100 = (7 0 1 , C 4)16

b) Octal
011 100 000 001 , 110 001 000 = (3 4 0 1 , 6 1 0)8

Ejemplo: Convertir el número octal 673,12 a binario

(6 7 3 )8 = 110 111 011 , 001 0102

Página 7
UNIVERSIDAD NACIONAL DE CATAMARCA
Facultad de Tecnología y Ciencias Aplicadas
Arquitectura de Computadores
Ejemplo: Convertir el número hexadecimal 39,B8 a decimal

(39, B8)16 = 3.161 + 9.160 + B.16-1 + 8.16-2


= 48 + 9 + 0,687 + 0,031 = 57,71810

Ejemplo: Convertir el número octal 375,42 a decimal

(3 7 5 , 42 )8 = 3 . 82 + 7. 81 + 5 . 80 + 4 . 8-1+ 2 . 8-2 = (229.62) 10

Operaciones Aritméticas en Base Distinta de 10

Las operaciones aritméticas con números de base b ( b ≠ 10 ) siguen las mismas reglas que
los números decimales. Cuando se trabaja con una base distinta de 10 debe tenerse
especial cuidado en emplear solo símbolos admisibles para la base b.

Sistema binario natural

Suma Binaria: la adición binaria se realiza de la misma forma que en el sistema decimal. El
digito menos significativo se opera primero y el más significativo ultimo. Existen cuatro casos
cuando se suman cifras binarias (bits) que se muestran en la tabla de verdad para dos
variables binarias a y b. Como se aprecia en la tabla, cuando las dos variables toman el
valor ‘1’ se produce un acarreo

b a Suma Bit de
0 0 0 acarreo
0 1 1
1 0 1
1 1 10

Ejemplo:
1 Acarreo
a 1 0 1
b 0 0 1
Resultado 1 1 0

Resta Binaria: Esta operación al igual que la suma sigue las mismas reglas de restar que el
sistema decimal, en la tabla siguiente vemos la operación de resta para dos dígitos binarios

Bit de
acarreo b a Resta
0 0 0
10 1 1
1 0 1
1 1 0
Ejemplo:

Página 8
UNIVERSIDAD NACIONAL DE CATAMARCA
Facultad de Tecnología y Ciencias Aplicadas
Arquitectura de Computadores
1 Prestado
a 1 0 1
b 0 1 1
Resultado 0 1 0

Ejemplo: Restar: 1010111 - 111101

Después de alinear cada posición del minuendo con el sustraendo, empezamos a restar
posición por posición, comenzando de 1 – 1 = 0 y 1 – 0 = 1
1010111
111101
010

Al llegar a la cuarta posición se nos presenta la necesidad de restar 1 a 0, como esto no es


posible, tomamos una unidad de la quinta posición, para pasarla como 10 unidades a la
cuarta posición. Con esto podemos continuar restando 10 – 1 = 1

0 10
1010111
111101
1010

En la quinta posición volvemos a tener otra resta 0 – 1, como no podemos tomar una unidad
de la sexta la tomamos de la séptima, en la sexta posición esta unidad es 10, si le tomamos
una unidad queda 1 en la sexta y uno en la quinta
10
0 1 0 10
1010111
111101
0011010

Multiplicación Binaria: El proceso es muy simple ya que las cifras seran ‘0’ o ‘1’, la tabla y
el ejemplo siguiente muestran la operación de multiplicar en base dos.

b a Multiplicación
0 0 0
0 1 0
1 0 0
1 1 1

Ejemplo:
1 0 0 1 910
1 0 1 1 1110
1 0 0 1
1 0 0 1
0 0 0 0
1 0 0 1
1 1 0 0 0 1 1 9910

Página 9
UNIVERSIDAD NACIONAL DE CATAMARCA
Facultad de Tecnología y Ciencias Aplicadas
Arquitectura de Computadores
División Binaria: El proceso en este caso resulta mas simple que el sistema decimal
puesto que cuando se verifica cuantas veces el divisor “cabe en” el dividendo, solo hay dos
posibilidades ‘0’ o ‘1’.

Ejemplo:
1 0 0 1 1 1
0 0 0 1 1
1 0 0 Resultado
1 1
0 1 1
1 1
0 0  Resto

Ejemplo:
1 0 1 0 1 0 0
1 0 0 1 0, 1
0 0 1 0 0 Resultado
1 0 0
0 0 0  Resto

Obsérvese que en el segundo ejemplo se coloco la coma decimal y se agrego un cero para
poder continuar con la división
Complemento: Existen dos tipos de complemento para un sistema de base ‘b’, el
complemento radical o complemento a la base y el complemento radical disminuido o
complemento a la base menos uno.
Complemento radical disminuido, dado un número N en base b de n dígitos, el complemento
radical disminuido se define como
b n

1  N

Si b = 10 y n = 1 → b – 1 = 9

Entonces el complemento radical disminuido o complemento a 9 de 1238910 será:

10 5

 1  12389  99999  12389  87610

Para el caso de un numero binario N = 10110012 tendremos que el complemento radical


disminuido o complemento a 1 es

2 7

 1  1011001 1111111 1011001 0100110

Complemento radical: se define como

bn – N

Comparando con el complemento radical disminuido se observa que el complemento radical


se obtiene sumando 1 al complemento radical disminuido ya que

bn – N = ( bn – 1) – N + 1

de esta forma vemos que podemos obtener el complemento a la base del numero 1238910
sumándole 1 a su complemento a 9

Página 10
UNIVERSIDAD NACIONAL DE CATAMARCA
Facultad de Tecnología y Ciencias Aplicadas
Arquitectura de Computadores
87610c9 + 1 = 87611c10

y para el numero 10110012 el complemento a dos es

0100110c1 + 1 = 0100111c2

En los ejemplos anteriores se supuso que el numero N era entero, si N tiene coma decimal
esta debe eliminarse en forma temporal para poder complementar, la coma se devuelve
después en la misma posición relativa

El complemento del complemento devuelve el valor original

C2 = bn – N Si complementamos el complemento se obtiene

C’2 = bn – c2 = bn – ( bn – N ) = bn – bn + N = N

Resta con Complemento: La resta de dos números sin signo ( M – N ) puede realizarse de
la siguiente forma :

a) Sumar a M el complemento a la base de N

b) Si M ≥ N la suma producirá acarreo final bn que se desecha, lo que queda es el valor


de M – N

c) Si M < N la suma no producirá acarreo final y es igual a bn- ( N – M ) que es el


complemento a la base b de N – M. Para obtener la respuesta calcúlese el
complemento a b de la suma y coloque el signo negativo adelante

Ejemplo: Efectúe la operación de resta en el sistema decimal de los números

7253210 – 325010

M = 72532, N = 3250,

Complemento a la base de N = N’ = 96750


M 72532
+ N’ 96750
1 69282 Resultado

Acarreo

Efectúe la operación de resta en el sistema decimal de los números: 325010 - 7253210

M =3250, N = 72532

Complemento a la base de N = N’ = 27468


M 03250
+ N’ 27468
R 30718
Complementando a la base y anteponiendo el signo menos

R’ = - 69282 Resultado

Página 11
UNIVERSIDAD NACIONAL DE CATAMARCA
Facultad de Tecnología y Ciencias Aplicadas
Arquitectura de Computadores
Ejemplo: Dado los números M = 10101002 y N = 10000112, realice las operaciones M – N y
N – M utilizando el complemento a dos (base)

M–N N–M
10101002 M 10000112 N
+ 01111012 N’ + 01011002 M’
1 00100012 11011112

Resultado = 00100012 Complentando y cambiando el


signo el resultado = - 00100012

Ejemplo: Repetir el ejercicio anterior pero utilizando el complemento a uno (radical


disminuido)

M–N N–M
10101002 M 10000112 N
+ 01111002 N’ + 01010112 M’
1 00100002 11011102
+ 12
00100012
Resultado = 00100012 Complentando y cambiando el
signo el resultado = - 00100012

Sistema binario codificado decimal (BCD)

Recuérdese que en este sistema a cada digito decimal se lo representa por un código
binario de cuatro bits: 1510  ( 0001 0101 )BCD

Suma: Consideraremos dos casos

a) Cuando el resultado de la suma es menor o igual a 9 (<= 9)


5 0 1 0 1 BCD
+3 0 0 1 1 BCD
8 1 0 0 0 BCD

45 0 1 0 0 0 1 0 1 BCD
+33 0 0 1 1 0 0 1 1 BCD
78 0 1 1 1 1 0 0 0 BCD
b) Cuando el resultado de la suma es mayor a 9 (> 9)

6 0 1 1 0 BCD
+ 7 0 1 1 1 BCD
13 1 1 0 1 BCD código invalido para BCD

Siempre que esto ocurra la suma tiene que ser corregido por la adición de seis (0110) para
tomar en cuenta la omisión de los seis códigos no validos (1010, 1011, 1100, 1101, 1110 y
1111)

Página 12
UNIVERSIDAD NACIONAL DE CATAMARCA
Facultad de Tecnología y Ciencias Aplicadas
Arquitectura de Computadores

6 0 1 1 0 BCD
+ 7 0 1 1 1 BCD
13 1 1 0 1 BCD código invalido para BCD
+ 0 1 1 0 BCD
0 0 0 1 0 0 1 1 BCD

1 3

Ejemplo:
47 0 1 0 0 0 1 1 1 BCD
+ 35 0 0 1 1 0 1 0 1 BCD
82 0 1 1 1 1 1 0 0 BCD invalido para BCD
1 0 1 1 0 BCD
1 0 0 0 0 0 1 0 BCD

8 2

Ejemplo: 1
59 0 1 0 1 1 0 0 1 BCD
+ 38 0 0 1 1 1 0 0 0 BCD
97 1 0 0 1 0 0 0 1 BCD invalido para BCD,
+ 0 1 1 0 BCD (Nótese que produce acarreo)
1 0 0 1 0 1 1 1 BCD

9 7

Resta: Al igual que la suma se debe salvar el error de los códigos inválidos cuando el
resultado es superior a 9, en este caso la corrección se realiza restando seis
7 0 1 1 1 BCD
- 6 0 1 1 0 BCD
1 0 0 0 1 BCD

45 0 1 0 0 0 1 0 1BCD
- 36 0 0 1 1 0 1 1 0BCD
9 0 0 0 0 1 1 1 1BCD  invalido para BCD
- 0 1 1 0 BCD
0 0 0 0 1 0 0 1 BCD

0 9

Sistema de numeración hexadecimal (BASE = 16)

Suma: El procedimiento es igual al decimal, debiéndose recordar que el digito mayor es ‘F’
en lugar de ‘9’

Página 13
UNIVERSIDAD NACIONAL DE CATAMARCA
Facultad de Tecnología y Ciencias Aplicadas
Arquitectura de Computadores
Ejemplos:
5 816 La suma de 8 + 4 produce 1210 que es C16
+ 2 416
7 C16

1 (acarreo)
5 816 Como B16 es 1110 ==> 816 + B16 = 810 + 1110 = 1910
+ 4 B16 y como 1910 = 1 * 161 + 9 * 160 = 1316
A 316

1 (acarreo)
3 A F16 Como (F + C)16 es (15 + 12)10 = 2710 = 1B16
+ 2 3 C16 Como (1+A+3)16 es (1+10+3)10 = 1410 = E16
5 E B16

Resta: Recuérdese que los números hexadecimales son una forma muy eficaz de
representar números binarios. Así, podemos restar números hexadecimales utilizando el
mismo procedimiento que se utiliza en los números binarios. El sustraendo se complementa
a 2 y luego se sumara al minuendo, cualquier sobrepasamiento se despreciara.
Podemos mencionar dos métodos para obtener el complemento a 2 de un número
hexadecimal:
El primer método es transformando el numero hexadecimal en binario, complementar y
luego volver a trasformar en hexadecimal

73A  numero en hexadecimal


0111 0011 1010  numero en binario
1000 1100 0110  numero en binario complementado a 2
8C6  numero hexadecimal complementado a 2

El segundo método consiste en restar F a cada digito, luego sumarle 1


F F F
-7 -3 -A
8 C 5
+ 1
8 C 6  numero hexadecimal complementado a 2

Ejemplo: restar 3 A 516 de 59216


1) complementar 3 A 516  C5A16
2) sumar

592
+C5A
11EC  Resultado = 1 E C16

Se desprecia el acarreo

Página 14
UNIVERSIDAD NACIONAL DE CATAMARCA
Facultad de Tecnología y Ciencias Aplicadas
Arquitectura de Computadores
REPRESENTACIÓN DE NÚMEROS CON SIGNO

Las magnitudes en los sistemas digitales se representan a través de una combinación de


bits, en un sistema de 6 bits podríamos representar cantidades que van desde 0000002 a
1111112 (010 a 6310 ). Si queremos representar números negativos debemos valernos de
algún medio de representación para el signo. Esto se lleva a cabo agregando un bit
adicional para representar el signo y estableciendo una convención tal como ‘0’ equivales a
signo ‘+’ y ‘1’ equivale a signo ‘-‘, es sistema entonces que en nuestro sistema de seis bits
las magnitudes que podemos representar van desde –31 a +31

0 1 1 0 0 1 = +25

Signo Magnitud

1 0 0 1 1 0 = -6

El bit de signo se usa para indicar si un número es positivo o negativo, el resto de los bits se
usa para representar la magnitud en forma binaria. Para los números negativos, no obstante
existen tres formas de representar la magnitud:
a) En forma de magnitud verdadera
b) En forma de complemento a 1
c) En forma de complemento a 2
d) Representación mediante exceso

Forma de magnitud verdadera: la magnitud se representa en binario natural

Forma de complemento a 1: cuando se representa un número negativo en forma de


complemento a 1, el bit de signo se conserva en ‘1’ y la magnitud se complementa a 1

Ejemplo:

-57 = 1 1 1 1 0 0 1  Forma de magnitud verdadera

= 1 0 0 0 1 1 0  Forma de complemento a 1

bit de signo

Forma de complemento a 2: en este caso la magnitud se complementa a 2

Ejemplo:

-57 = 1 1 1 1 0 0 1  Forma de magnitud verdadera

= 1 0 0 0 1 1 1  Forma de complemento a 2

bit de signo

Las tres formas de representación se utilizan en los sistemas digitales, algunos almacenan
la información en forma de magnitud verdadera y la transforman a forma de complemento
antes de realizar una operación aritmética.

Ejercicio: represente los siguientes números en formato verdadero y en complemento a 2:


13, -9, -3
Magnitud verdadera Complemento a 2
No corresponde por ser un
13 0 1 1 0 1 numero positivo
-9 1 1 0 0 1 1 0 1 1 1

Página 15
UNIVERSIDAD NACIONAL DE CATAMARCA
Facultad de Tecnología y Ciencias Aplicadas
Arquitectura de Computadores
-3 1 0 0 1 1 1 1 1 0 1

Ejercicio: los siguientes números son números binarios en complemento a dos, determine el
valor decimal: a) 011002, b) 110102 y c) 100012
a) Como el signo es + la magnitud esta expresada en forma verdadera,
Entonces 011002 = +1210
b) Si complementamos la magnitud C2 = (10102)’ = 01102 y como el signo se conserva
Tendremos que 101102 = -610

c) Si complementamos la magnitud C2 = (00012)’ = 11112 y como el signo se conserva


Tendremos que 111112 = -1510

Forma de representación con exceso: en este caso el número se forma sumando un valor al
número original. Para codificar un número con exceso se procede de la siguiente forma:

a) Al número decimal se le suma cierta cantidad o exceso, el exceso suele ser 2n-1 o
2 n-1 – 1 donde n es el número de bits

b) El valor obtenido se codifica en binario puro

Ejemplo: Codificar el número -4 en un código binario de 8 bit con exceso 127

Este exceso surge del modelo 2 n-1 – 1  28-1 – 1  128 – 1 = 127

Entonces para -4  -4 + 127 = 12310  0 1 1 1 1 0 1 12

SUMA CON REPRESENTACIÓN EN FORMA DE COMPLEMENTO A DOS: En los


diversos casos que se consideraran, el bit de signo de cada número se opera en la misma
forma que la parte de la magnitud

Caso 1: dos números positivos


+9 0 1 0 0 1
+4 0 0 1 0 0
+13 0 1 1 0 1
Nótese que ambos operandos tienen la misma cantidad de bits, esto siempre debe ser así

Caso 2: numero positivo y numero negativo menor


+9 0 1 0 0 12  en forma directa
- 4 1 1 1 0 02  en forma de complemento a 2
+5 1 0 0 1 0 12

El acarreo se Bit de
desprecia signo
siempre

Página 16
UNIVERSIDAD NACIONAL DE CATAMARCA
Facultad de Tecnología y Ciencias Aplicadas
Arquitectura de Computadores
Caso 3: numero positivo y numero negativo mayor
- 9 1 0 1 1 12  en forma de complemento a 2
+4 0 0 1 0 02  en forma directa
- 5 1 1 0 1 12  en forma de complemento a 2
Bit de
signo

Como el bit de signo de la suma es negativo, la magnitud esta complementada. Si hacemos


el complemento de la magnitud de la suma obtenemos

(10112)’ = 01012 ==> Resultado = 1 0 1 0 12 = -510

Caso 4: dos números negativos

-9 1 0 1 1 1  en forma de complemento a 2
-4 1 1 1 0 0  en forma de complemento a 2
-13 1 1 0 0 1 1  en forma de complemento a 2

El acarreo se desprecia siempre

Como el bit de signo de la suma es negativo, la magnitud esta complementada. Si hacemos


el complemento de la magnitud de la suma obtenemos

(00112)’ = 11012 ==> Resultado = 1 1 1 0 12 = -1310

Caso 5: dos números iguales y opuestos


- 9 1 0 1 1 1
+9 0 1 0 0 1
0 0 0 0 0 0 0

Bit de
El acarreo se signo
desprecia
siempre

Multiplicación: En representación de signo magnitud el resultado de la multiplicación se


obtiene multiplicando las magnitudes, si ambos números son del mismo signo el resultado
es positivo, si son de signos distintos entonces el resultado es negativo.
El tamaño del resultado es la suma de los tamaños de los operando

n bits * m bits = n + m bits

Página 17
UNIVERSIDAD NACIONAL DE CATAMARCA
Facultad de Tecnología y Ciencias Aplicadas
Arquitectura de Computadores
CÓDIGOS BINARIOS

Entre las formas de representar un número binario hemos visto el sistema binario natural y
el binario codificado decimal (BCD).
Recordemos que el código BCD no es otro sistema numérico como el binario, el octal o el
hexadecimal. En el sistema decimal con cada digito codificado en su equivalente binario.
La ventaja del código BCD es la relativa facilidad de conversión, esta facilidad es
especialmente importante desde el punto de vista del hardware y especialmente en aquellos
casos donde la salida debe mostrarse en forma de dígitos decimales como ser una
calculadora.

El código de Exceso 3

Se relaciona con el BCD y algunas veces utiliza en lugar de este debido a que posee
ventajas en ciertas operaciones aritméticas.
El código Exceso 3 se efectuad igual que el BCD excepto que antes de la codificación se le
suma 3 al digito decimal.

( 8 3 )10
1000 0011BCD

8 3
+3 +3
11 6
1011 0110 BCD EXCESO 3

En la siguiente tabla se muestran el código BCD y el exceso 3, nótese que si bien ambos
códigos utilizan 10 de los 16 posibles combinaciones
binarias, los códigos inválidos no son los mismos.
Mientras el BCD considera como inválidos los códigos Decimal BCD Exceso
1010, 1011,100,1101,1110,1111; En el exceso 3 los 0 0000 0011
códigos inválidos son 0000, 0001, 0010, 1101, 1110, 1 0001 0100
1111. 2 0010 0101
3 0011 0110
4 0100 0111
5 0101 1000
6 0110 1001
7 0111 1010
8 1000 1011
9 1001 1100

El código de GRAY

Pertenece a una clase de códigos llamado de cambio mínimo en los cuales solo cambia un
BIT cuando se pasa de una combinación otra.
Este código se utiliza generalmente en dispositivos de entrada y salida y especialmente en
aquellas situaciones donde se hace necesario efectuar controles sobre el sistema por su
facilidad de auto detección de errores.
Ejemplo: supongamos un sensor de temperatura como entrada a un sistema de control de
un horno, si en una variación de temperatura cambia mas de un bit podríamos estar en

Página 18
UNIVERSIDAD NACIONAL DE CATAMARCA
Facultad de Tecnología y Ciencias Aplicadas
Arquitectura de Computadores
presencia de un error dado que la temperatura no puede soltar de 12ºc a 14ºc si o si debe
pasar por 13ºc.

Decimal Código Gray


0 0000
Solo cambia 1 bit entre dos
1 0001 combinaciones consecutivas, en
2 0011 este caso decimos que el código
3 0010 es CONSECUTIVO
4 0110
5 0111
6 0101
7 0100

Si entre el primer código y el último solo cambia un bit y además el código es consecutivo
decimos que el código es CICLICO.

Códigos Alfanuméricos
En general los sistemas digitales deben poder reconocer código que representen no solo
números sino también letras y caracteres especiales. Estos códigos son llamados código
ALFANUMERICOS.
Un conjunto completo de caracteres incluye:

26 letras minúsculas
26 letras mayúsculas
10 cifras numéricas
~25 caracteres especiales

87 caracteres diferentes

Para representar 87 caracteres diferentes se requerirán 7 bits ya que con 7 bits podemos
representar 27 = 128 combinaciones posibles.
El código alfanumérico mas conocido es código ASCII (Código Estándar Estadounidense
para el Intercambio de Información).
La tabla muestra en forma parcial este código

Carácter ASCII Carácter ASCII


A 100 0001 J 100 1010
B 100 0010 K 100 1011
C 100 0011 0 011 0000
D 100 0100 1 011 0001
E 100 0101 2 011 0010
F 100 0110 3 011 0011
G 100 0111 4 011 0100
H 100 1000 5 011 0101
I 100 1001 6 011 0110

Página 19
UNIVERSIDAD NACIONAL DE CATAMARCA
Facultad de Tecnología y Ciencias Aplicadas
Arquitectura de Computadores
Códigos Detectores de errores

Uno de los métodos mas utilizados es el método de paridad. Este método consiste en
agregar un bit adicional al código.
El bit adicional será “0” o “1” dependiendo de la cantidad de unos que tenga el código.
El método de paridad puede controlar:

Paridad Par: en este caso el bit de paridad se escoge de manera tal que el numero total de
unos del código sea par.
Si la letra “A” según el código ASCII es (1000001 )2 y se agrega un bit de paridad par , el
nuevo código para la letra “A” será 0 1000001

Bit de paridad agregado

Paridad Impar: al igual que la paridad par pero en este caso el bit de paridad se escoge de
manera tal que el numero total de unos del código sea impar.
Para el mismo caso de la letra “A” según el código ASCII es (1000001)2 y se agrega un bit
de paridad par , el nuevo código para la letra “A” será 1 1000001

Bit de paridad impar agregado

Debe aclararse que este método no detecta el 100% de los errores ya que si dos bit con
condición de paridad o impuridad no se alteraría. Por ello el método se utiliza en aquellos
sistemas sonde la probabilidad de error es muy baja.

ARITMÉTICA EN COMA FLOTANTE

Hasta ahora hemos visto algoritmos aritméticos para realizar operaciones sobre
representaciones de números en coma fija. Todos ellos se pueden utilizar para las
representaciones en coma flotante a condición de tener en cuenta el escalado, es decir,
conocer la posición correcta del punto donde se localiza la separación entre la parte entera y
la parte decimal.
Pero en el computador, todo dato debe ser almacenado en un registro con un número finito
de bits. Y la pregunta es ¿cómo almacenamos los datos en coma flotante?.
La respuesta ha esta pregunta comienza preguntándonos primero si es necesaria la
notación en coma flotante en los computadores, y si se implementa ¿con que
características?.
La IEEE, en 1985 hizo oficial el Standard 754 del IEEE para punto flotante binario, basado
en el diseño inicial de Intel, pero algo simplificado.

Representación en Punto Flotante


Con esta notación exponencial seremos capaces representar un amplio rango de valores
numéricos positivos y negativos centrados en el cero.
Un número cualquiera X expresado en notación exponencial se puede escribir como:
X = M * BE

Página 20
UNIVERSIDAD NACIONAL DE CATAMARCA
Facultad de Tecnología y Ciencias Aplicadas
Arquitectura de Computadores
Si lo queremos representar en un registro de n bits, utilizaremos p bits para la mantisa M y
q bits para el exponente E, además de un bit de signo s de la mantisa (del número en si).
Siendo B la base del exponente y cumpliéndose que: n = p+q+1
La base B está implícita y no es necesario representarla, pues es la misma siempre.
El nombre de Punto Flotante proviene de que al ajustar el exponente E se modifica la
posición del punto decimal en la mantisa M.
El diseñador de la aritmética debe conseguir un compromiso entre los tamaños de la
mantisa y los tamaños del exponente, ya que al tener un número fijo de bits totales, si se
toma un bit de un campo se pierde del otro y viceversa. Este compromiso se mueve entre la
precisión y el rango que deseemos del número en punto flotante, es decir incrementar el
tamaño de la mantisa enriquece el número de bits para representar la mantisa, mientras
que incrementar el tamaño del exponente incrementa el rango de números que pueden
representarse.

Ejemplo: Sean los siguientes números:


97600000000000000 = 9,76 * 10+16 = 0,976 * 10+17
0.000000000000976 = 9,76 * 10-13 = 0,976 * 10-12

Para pasarlos a notación exponencial lo que hemos hecho es mover el punto decimal y
utilizar el exponente para registrar la posición original de dicho punto.

En un computador, los valores de M y E se suelen codificar de la siguiente forma:


Mantisa: La mantisa M suele ser una representación en complemento a 2 (con signo). La
precisión de las representaciones numéricas va a depender del número de bits que
utilicemos para la mantisa. Por ello es fundamental que la mantisa tenga el mayor número
de bits significativos, para lo cual se debe normalizar. La normalización de la mantisa en
base 2 se consigue desplazando hacia la izquierda la mantisa hasta que el bit a la derecha
del punto de la raíz sea uno (o el de la izquierda). Por ello, al colocar el primer uno a la
derecha del punto decimal, tendremos que la magnitud de la mantisa en valor absoluto tiene
un valor dentro del rango:
½ ≤ |m| ≤ 1
Ejemplo: Normalización de un número exponencial en base 2.
110.101 = 0.110101 * 211 = 1.10101 * 210

Exponente: Es un número de p bits que utiliza una representación exceso 2p-1 por las
razones que vamos a exponer.
a) El 0 se podría representar como M=0 y cualquier valor de exponente. Pero puede ocurrir
que al realizar operaciones aritméticas, a causa de los errores de redondeo, apareciera
algún 1 en posiciones menos significativas de la mantisa.
Esto sugiere que el exponente más adecuado para representar el 0 es aquel que tiene el
mayor valor negativo.
De esta forma, se logra que los errores de redondeo de la mantisa, den un número tan
próximo a cero como sea posible.
b) La representación del 0 es una secuencia de 0`s tanto en la mantisa como en el
exponente, de esta forma tenemos una única representación del cero.

Operaciones en Punto Flotantes


A continuación vamos a recordar las cuatro operaciones básicas que se realizan sobre este
tipo de representaciones.

Página 21
UNIVERSIDAD NACIONAL DE CATAMARCA
Facultad de Tecnología y Ciencias Aplicadas
Arquitectura de Computadores
Suma y Resta
Cuando sumamos o restamos dos números en Punto Flotante se deben comparar los
exponentes y hacerlos iguales, para lo cual hay que desplazar o alinear uno de ellos
respecto al otro. Dados dos números en representación en Punto Flotante como
x = mx 2xe y = my 2ye

Las operaciones de suma y resta se definen de la siguiente forma, suponiendo que xe < ye

X+Y (mx 2xe-ye + my ) * 2ye (mx + my 2ye-xe) * 2ye

X-Y (mx 2xe-ye - my ) * 2ye (mx + my 2ye-xe) * 2ye

Ejemplo: Sean x e y los siguientes números enteros


x = 2560 y = 516000
en notación exponencial “normalizada” tendríamos
x = 2.56 103 y = 5,16 105
Si quisiéramos realizar las operaciones de suma o de resta en la notación en coma fija
haríamos lo siguiente:

x+y ==> 002560


+ 516000
518560 que seria 5,1856 105

x-y ==> (2560 - 516000) = -513440 que seria 5,13440 105

Y para realizar estas operaciones en representación en Punto Flotante deberíamos aplicar


las fórmulas vistas con anterioridad:

x+y ==> x+y = 2,56 103 + 5,16 105


(2,56 103-5 + 5,16) 105
(2,56 10-2 + 5,16) 105
(0,0256 + 5,16) 105
(5,1825) 105

x-y ==> x-y = 2,56 103 - 5,16 105


(2.56 103-5 - 5,16) 105
(2,56 10-2 - 5,16) 105
(0,0256 - 5,16) 105
(-5,13440) 105

Problema: Sean x e y los siguientes números enteros


x = 737 y = 267337
Pásalos a notación exponencial y calcula y-x.
Expresa el resultado de forma normalizada

Problema: Sean x e y los siguientes números en base-2


x = 11000 y = 1010000
Los pasamos a notación exponencial y realizamos las operaciones: x+y y x-y.

Página 22
UNIVERSIDAD NACIONAL DE CATAMARCA
Facultad de Tecnología y Ciencias Aplicadas
Arquitectura de Computadores
X+Y: X = 1,1 * 2100 Y = 1,01 * 2110

X+Y = (1,1 * 2100-110 + 1,01) * 2110 =


= (1,1 * 2-10 + 1,01) * 2110 =
= (0,011 + 1,01) * 2110 = 0,011
= 1,101 * 2110 +1,010
= 1,101

X-Y: X-Y = (1,1 - 1,01 * 2110-100) * 2100 =


= (1,1 - 1,01 * 210) * 2100 =
= (1,1 - 101,0) * 2100 = 1,1 1,1
= 11,1 * 2100 - 101,0 + 011,0
100,1 011,1

Como el resultado es negativo por |y|>|x| Descomplementamos

Las operaciones de suma y resta, así como la multiplicación y la división pueden producir
desbordamiento, por producir resultados demasiado grandes o demasiado pequeños
(subdesbordamientos). Hay cuatro tipos posibles:
1) Desbordamiento del exponente. Es cuando un exponente positivo E excede de su valor
máximo permitido. En algunos ordenadores el número X se representa entonces como + o -
.
2) Subdesbordamiento del exponente. Es cuando un exponente negativo E excede de su
valor máximo permitido. Esto significa que el numero X es demasiado pequeño y se puede
considerar como igual a 0.
3) Subdesbordamiento de mantisa. En el proceso de alineación de las mantisas, si los
dígitos se desplazan hacia la derecha más allá de su bit menos significativo, lo que sucede
es que se pierden y es como redondear el resultado.
4) Desbordamiento de mantisa. En la suma de dos mantisas del mismo signo se puede
producir un arrastre del bit más significativo. Esto se soluciona mediante la renormalización,
desplazando a la derecha un bit la mantisa y ajustando el exponente.

La precisión de la representación en Punto Flotante no posee la misma precisión en toda la


recta Real. En la figura siguiente se puede apreciar como podemos representar con más
precisión o con mayor densidad de números, al acercarnos al cero. Y perdemos precisión al
alejarnos hacia más o menos infinito.

Algoritmo de la suma-resta.

Página 23
UNIVERSIDAD NACIONAL DE CATAMARCA
Facultad de Tecnología y Ciencias Aplicadas
Arquitectura de Computadores
Por lo visto con anterioridad, para realizar la suma (resta) de dos operandos en
representación Punto Flotante debemos realizar previamente la separación de los
exponentes y de las mantisas para su tratamiento posterior, y después realizar esta serie de
pasos:
1. Seleccionar el número con menor exponente y desplazar su mantisa a la derecha
tantas veces como indique la diferencia en módulo de los exponentes.
2. Hacer que el exponente resultado sea igual al mayor de los exponentes.
3. Realización de las operaciones de suma o resta con las mantisas.
4. Normalización del resultado. Una vez realizada la suma se debe normalizar
desplazando los bits de la mantisa hacia la izquierda o la derecha con lo cual habrá
que cambiar el valor del exponente.
5. Comprobar las condiciones de desborde.
Un diagrama de flujo del algoritmo se muestra en la figura siguiente. Se utilizan los mismos
registros que para el caso de la suma resta, y el resultado final que almacenado en los
registros A y E.

Página 24
UNIVERSIDAD NACIONAL DE CATAMARCA
Facultad de Tecnología y Ciencias Aplicadas
Arquitectura de Computadores
Multiplicación y división.
La multiplicación y la división en punto flotante son más sencillas de realizar. Vemos la
fórmula que nos permitirá realizar estas operaciones manualmente:

Ejemplo: X = 256 Y = 51600


Realizar X*Y y X/Y con notación exponencial y comprobar el resultado

Ejemplo: Dados X= 11000 e Y=1010000


realizar X*Y y X/Y con notación exponencial y comprobar el resultado.

Ejercicio de examen: Tenemos dos números reales cuyos valores son


X = (120)10 e Y= (-0.6875)10
Se pide:
a) Dar su expresión en binario (base-2).
b) Pasar a notación exponencial normalizada.
c) Realizar las operaciones X*Y y X/Y usando la notación exponencial

Algoritmo de multiplicación y división.


Este algoritmo está fundamentado en el seguimiento de cuatro pasos:
1. Realizar la Suma-Resta de los exponentes.
2. Multiplicar-dividir las mantisas y determinar el signo del resultado.
3. Normalizar el valor resultado, si es necesario.
4. Comprobar las condiciones de rebose.
Un posible algoritmo para realizar estas operaciones se muestra en las figuras que se
muestran en las transparencias, en el cual el resultado final quedará almacenado en los
registros A y E.

Página 25
UNIVERSIDAD NACIONAL DE CATAMARCA
Facultad de Tecnología y Ciencias Aplicadas
Arquitectura de Computadores
Aritmética en Punto Flotante en el computador
Las Unidades aritméticas en como flotante de los computadores se construyen utilizando
dos unidades aritméticas en como fija:
- Unidad de tratamiento de mantisas.
- Unidad de tratamiento de exponente.
Más una Unidad de Control que conectará ambas unidades y que se encarga entre otras
cosas de normalizar adecuadamente el resultado.
En todos los computadores se ha normalizado la notación en Punto Flotante al estándar
IEEE-754. Este estándar posee dos formatos posibles de representación o almacenamiento
de la información, aunque internamente puede utilizarse formatos con más bits para una
mayor precisión.

IEEE 754
El IEEE (Instituto de Ingenieros Eléctricos y Electrónicos) ha creado un estándar para la
presentación de números en Punto Flotante. Este estándar especifica cómo deben
representarse los números en Punto Flotante con simple precisión (32 bits) o doble precisión
(64 bits), y también cómo deben realizarse las operaciones aritméticas con ellos.

Simple Precisión
El estándar IEEE-754 para la representación en simple precisión de números en Punto
Flotante exige una cadena de 32 bits. El primer bit es el bit de signo (S), los siguientes 8 son
los bits del exponente (E) y los restantes 23 son la mantisa (M):

Al estar el dato normalizado, es decir expresado siempre como “1,…” (“uno coma algo
más”), el 1 de la parte entera no se almacena, aunque nunca debemos olvidarnos que
existe.
El signo de la mantisa está representado en el bit 31.
El campo del exponente (ne) dispone de 8 bits, empezando por el bit 23 hasta el bit 30.
El campo de mantisa (nm) dispone de 23 bits, empezando por el bit 0 hasta el bit 22.
Considerando el valor 1 implícito (oculto) para el primer bit de los números binarios
normalizados la precisión del campo de la mantisa es de 24 bits.
El valor del desplazamiento es de 127, es decir el exceso C = 27 -1 = 127.
Estos tamaños de exponente y mantisa dan a la aritmética del computador un rango que
cubre fracciones tan pequeñas como 2.0 diez x 10 -38 y números tan grandes como 2.0 diez x
10 38.

Página 26
UNIVERSIDAD NACIONAL DE CATAMARCA
Facultad de Tecnología y Ciencias Aplicadas
Arquitectura de Computadores
El valor V representado por esta cadena puede ser determinado como sigue:
 Si E=255 y M es no nulo, entonces V=NaN ("Not a number")
 Si E=255 y M es cero y S es 1, entonces V=-Infinito
 Si E=255 y M es cero y S es 0, entonces V=Infinito
 Si 0<E<255 entonces V=(-1)S * 2 (E-127) * (1.M) donde "1.M" se emplea para
representar el número binario creado por la anteposición a M de un 1 y un punto
binario.
 Si E=0 y M es no nulo, entonces V=(-1)S * 2 (-126) * (0.M) Estos son valores "sin
normalizar".
 Si E=0 y M es cero y S es 1, entonces V=-0
 Si E=0 y M es cero y S es 0, entonces V=0

En particular,

0 00000000 00000000000000000000000 = 0
1 00000000 00000000000000000000000 = -0

0 11111111 00000000000000000000000 = Infinito


1 11111111 00000000000000000000000 = -Infinito

0 11111111 00000100000000000000000 = NaN


1 11111111 00100010001001010101010 = NaN

0 10000000 00000000000000000000000 = +1 * 2(128-127) * 1.0 = 2


0 10000001 10100000000000000000000 = +1 * 2(129-127) * 1.101 = 6.5
1 10000001 10100000000000000000000 = -1 * 2(129-127) * 1.101 = -6.5

0 00000001 00000000000000000000000 = +1 * 2(1-127) * 1.0 = 2(-126)


0 00000000 10000000000000000000000 = +1 * 2(-126) * 0.1 = 2(-127)
0 00000000 00000000000000000000001 = +1 * 2(-126) *
0.00000000000000000000001 =
2(-149) (valor positivo más pequeño)

Doble precisión
El estándar IEEE-754 para la representación en doble precisión de números en Punto
Flotante exige una cadena de 64 bits. El primer bit es el bit de signo (S), los siguientes 11
son los bits del exponente (E) y los restantes 52 son la mantisa (M):

 El signo de la mantisa está representado en el bit 63.


 El campo del exponente (ne) dispone de 11 bits, empezando por el bit 52 hasta el bit
62
 El campo de mantisa (nm) dispone de 52 bits, empezando por el bit 0 hasta el bit 51.
Considerando el valor 1 implícito (oculto) para el primer bit de los números binarios
normalizados la precisión del campo de la mantisa es de 53 bits.
 El valor del desplazamiento es de 1023,es decir el exceso C = 210- 1 = 1023.
 Estos tamaños de exponente y mantisa dan a la aritmética del computador un rango
que cubre fracciones tan pequeñas como 2.0 diez x 10 -308 y números tan grandes
como 2.0 diez x 10308.

Página 27
UNIVERSIDAD NACIONAL DE CATAMARCA
Facultad de Tecnología y Ciencias Aplicadas
Arquitectura de Computadores

El valor V representado por esta cadena puede ser determinado como sigue:
 Si E=2047 y M es no nulo, entonces V=NaN ("Not a number")
 Si E=2047 y M es cero y S es 1, entonces V=-Infinito
 Si E=2047 y M es cero y S es 0, entonces V=Infinito
 Si 0<E<2047 entonces V=(-1)S * 2 (E-1023) * (1.M) donde "1.M" se emplea para
representar el número binario creado por la anteposición a M de un 1 y un punto
binario.
 Si E=0 y M es no nulo, entonces V=(-1)S * 2 (-1022) * (0.M) Estos son valores "sin
normalizar".
 Si E=0 y M es cero y S es 1, entonces V=-0
 Si E=0 y M es cero y S es 0, entonces V=0

Precisión Extendida

Este formato suele reservarse normalmente para almacenar resultados intermedios, su


longitud extra le permite proteger los resultados finales del redondeo y los cálculos
intermedios del overflow y underflow. El bit implícito de los anteriores formatos aquí no se
contempla, ya que se encuentra físicamente presente en la mantisa.

Página 28
UNIVERSIDAD NACIONAL DE CATAMARCA
Facultad de Tecnología y Ciencias Aplicadas
Arquitectura de Computadores

Problema: Representar el numero A = 0,11010001 * 210100


Según el IEEE-754 simple precisión.
A = 0,11010001 * 210100 = 1,1010001 * 210011
El exponente más el exceso (127) vale:
00010011
+01111111
10010010 entonces el número vale:

Problema: Representar el numero A = 0,11010001 * 210100 según el IEEE-754 doble


precisión, y da en hexadecimal el resultado.

Problema: Representar el numero A = -0,11010001 * 2-10100 según el IEEE-754 simple


precisión. Y luego en Doble precisión. Comprobar si es válida la fórmula para pasar de
simple a doble precisión (tengo mis dudas).

Redondeo
Cuando tenemos un valor no representable, se aproxima a uno de estos 4 casos:
- Redondeo hacia el valor más próximo.
- Redondeo hacia +∞
- Redondeo hacia -∞
- Redondeo hacia 0.

Página 29
UNIVERSIDAD NACIONAL DE CATAMARCA
Facultad de Tecnología y Ciencias Aplicadas
Arquitectura de Computadores
Bit de guarda.
Cualquier operación aritmética se realiza sobre formatos ampliados. De esta forma ganamos
precisión en la realización de las operaciones aritméticas.
Veamos un ejemplo de la importancia de utilizar representaciones ampliadas, o bits de
guarda:

Conversión de SFP a DFP


La conversión de simple a doble precisión de realiza siguiendo el esquema:

17.25 = 10001.01 = 1.000101 * 2100  exp = 10000011

Página 30
UNIVERSIDAD NACIONAL DE CATAMARCA
Facultad de Tecnología y Ciencias Aplicadas
Arquitectura de Computadores
En doble precisión:
17.25 = 10001.01 = 1.000101 * 2100

00000000100
Exp = + 01111111111
10000000011

Ejercicio: Hallar la representación del número decimal A= (-255)10 según el IEEE-754 S.P. y
después pasarlo a doble precisión.

Ejercicio: Hallar la suma de los números X=0x418A0000 + Y=0xCA4F0000

Ejercicio para el martes 10-X-2009: Hallar la suma de los números X=0x418A0000 +


Y=0xC44F0000

Realizar la suma de X e Y usando la representación IEEE-754 y el algoritmo visto.


X = 24 = ( 11000)2 = 1.1 * 2100 Y = 80 = (1010000)2 = 1.01 * 2110

NOTA: recordar que el exponente esta en exceso 127


Inicio Registros: E1 = 00000100 A = 1.1
E2 = 00000110 M = 1.01
Paso 1: E = E1-E2 = 100 – 110 = -10 pero es mejor así, usando Complemento-2:
E = 00000100 – 00000110 = 11111110 (-2)C2
E<0 si >>A= 0.11
E = E + 1 = -10 + 1 = -1
E = 11111110+(1) = 11111110 + 00000001 = 11111111
E<0 si >>A= 0.011
E = E + 1 = -1 + 1 = 0
E = 11111111+(1) = 11111111 + 00000001 = 00000000
E<0 no E>0 no

Paso 2: E = Max (E1, E2) = 110


Sumo el exceso: E = 00000110 + 01111111 = 10000101

Paso 3: A= A+M
A: 0,011
+ 1,01
1,101

Página 31
UNIVERSIDAD NACIONAL DE CATAMARCA
Facultad de Tecnología y Ciencias Aplicadas
Arquitectura de Computadores
A Sobrepasa?  NO
A = 0?  NO
A Normalizado?  SI
FIN:

Realizar el producto de X e Y usando la representación IEEE-754 y el algoritmo.


X = 24 = ( 11000)2 = 1.1 * 2100 Y = 80 = (1010000)2 = 1.01 * 2110

Inicio Registros: E1 = 10000011 – Exceso = 00000100 A = 1.1


E2 = 10000101 – Exceso = 00000110 M = 1.01
Paso 1: E = E1+E2 = 00000100 + 00000110 = 00001010
E + Exceso = 00001010 + 01111111 = 10001001
Paso 2: A=A*M
1,1
* 1,01
11
00
11
1,111
E Excede?  NO
A = 0?  NO
A Normalizado?  SI
FIN:

X * Y = 0x44F00000

Comprobación:
X * Y = 24 * 80 = 1920 = (11110000000)2 = 1.111 * 21010
Exp + exceso = 00001010 + 01111111 = 10001001

Realizar el cociente entre Y / X usando la representación IEEE-754 y el algoritmo visto.


X = 24 = ( 11000)2 = 1.10 * 2100 Y = 80 = (1010000)2 = 1.01 * 2110

Página 32
UNIVERSIDAD NACIONAL DE CATAMARCA
Facultad de Tecnología y Ciencias Aplicadas
Arquitectura de Computadores
Inicio Registros: E1 = 10000011 – exceso = 00000100 A = 1.01
E2 = 10000101 – eceso = 00000110 M = 1.1
Paso 1: E = E1-E2 = 110 - 100 = 010  pero es mejor hacerlo de esta forma:
E = E1-E2 = 00000110 - 00000100 = 00000010 (todo en C2)
E + exceso = 00000010 + 01111111 = 10000001
Paso 2: A=A/M
1.01 1.1
10 0 0.1101010101...
1 00
...
E Excede?  NO
A = 0?  NO
A Normalizado?  NO
A = 1.10101010101010...
E = E – 1 = 10000000
FIN:

Y/X = 0x40555555

PROBLEMAS:
P1) ¿Qué número decimal es el A=0x4066C7E140000000?

P2) Representar el número X = 0.6875 en formato SP y DP según la norma IEEE-754 y


también el número X = -7,75 pero solo en formato SP.

P3) Multiplicar las representaciones de X e Y según IEEE-754 en Simple Precisión.


X = -7.75 e Y = 0.6875

P4) Dividir las representaciones de X e Y según IEEE-754: Y / X.


X = 7.75 e Y = 255.5

P5) ¿Qué número es el X=0x4066C7E140000000 si representa un real en D.P. según la


IEEE-754?.

¿Qué número es el Y=0x40F80000 si representa un real en S.P. según la IEEE-754?.

Pasa el segundo número a Doble precisión y realiza todas las operaciones aritméticas
posibles sobre estos números, es decir: ¿X+Y, X-Y, Y-X, X*Y, X/Y, Y/X?, usando el
algoritmo expresado en el diagrama de bloques.

P6) Representar el número X = 1785 en formato SP según la norma IEEE-754.

P7) Representar el número X = -56.320 en formato S.P. y D.P. según la norma IEEE-754.

P8) Suma las representaciones de X e Y según IEEE-754.

Página 33
UNIVERSIDAD NACIONAL DE CATAMARCA
Facultad de Tecnología y Ciencias Aplicadas
Arquitectura de Computadores
X = 271 e Y = 103

P9) Resta las representaciones de X e Y según IEEE-754: X – Y.


X = 170 e Y = 176

P10) Multiplicar y divide las representaciones de X e Y según IEEE-754: X * Y X/Y.


X = 3075.59375 e Y = -0.0234375

P11) Representar el número X = -72.084228515625 en formato SP y DP según la norma


IEEE-754.
P12) Multiplicar las representaciones de X e Y según IEEE-754: X * Y X/Y.
X = 5.38 e Y = -2.71

P13) Expresa el número X=0.0035 en Simple precisión según el IEEE-764.

Página 34
UNIVERSIDAD NACIONAL DE CATAMARCA
Facultad de Tecnología y Ciencias Aplicadas
Arquitectura de Computadores
Bibliografía

 Diseño de Sistemas Digitales, un enfoque integrado


John P. Uyemura
Thomson
 Sistemas Digitales y tecnología de computación
José Ma. Angulo Usategui
Paraninfo
 Teoría y Práctica de los sistemas digitales
TOCCI RONALD
Tercera Edición
 Sistemas electrónicos Digitales
Rafael Sánchez
Alfaomega 1993
 Teoría de Conmutación y diseño lógico
Hill – Peterson
 Ingeniería Computacional – Diseño de hardware
Morris Mano
Prentice Hall - 1991
 Principios de arquitectura de computadoras
Miles Murdocca y Vincent Heuring
Prentice Hall - 2000
 Sistemas Digitales
Ruiz, Espinoza, Roure
McGraw Hill

Página 35

Вам также может понравиться