3aSesionAC NumerosPuntoFijo T22P

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 8

Arquitectura de Computadoras.

3aSesion. Representacion de Datos en la Computadora.

2.1.- Numeros en punto fijo sin signo o magnitudes:


Existen diferentes sistemas numericos, es decir diferentes formas de representar cantidades
numericas. Ejemplo el sistema numerico ROMANO, el ARABIGO, MAYA, ... . Constan de ciertos
simbolos para representar determinadas cantidades, los cuales llamamos digitos, y los otros numeros se
forman a partir de ellos en diferentes disposiciones, algunas posicionales y otras no. El sistema de
numeracion Arabigo tiene ventajas para los calculos matematicos, siendo los numeros representados
mediante una cadena de digitos en notacion posicional.
Los sistemas numericos tienen una base, que refiere los valores que puede tomar uno solo de
sus digitos.
• En el sistema decimal cada digito puede tomar diez valores diferentes (0 al 9),
• en el sistema vigesimal un digito puede tomar 20 valores diferentes (0 al 19),
• el sistema hexadecimal 16 (0 al 15),
• el octal 8 (0 al 7),
• el sistema binario un digito solo puede valer '0' o '1',
• y asi sucesivamente.

Un sistema numerico posicional o pesado es una cadena de digitos


b5b4b3b2b1b0.b-1b-2
y lo definen:
• su base,
• el numero de digitos diferentes que lo componen (n),
• la posicion de cada uno de sus digitos dentro de la cadena, a los cuales se les asigna un peso
segun el lugar que ocupen en el numero.
• Consta de un punto, el cual separa la parte entera formada por los digitos hacia su izquierda, y
la parte fraccionaria formada por los digitos hacia la derecha del punto (s).
• Lo caracteriza el rango, la precision, y el error.

El rango lo definen los valores minimo y maximo que puede representar exactamente, y dentro
de el existe un conjunto de numeros representables o normales. Cualquier numero fuera de rango es no
representable y se dice que el sistema sufre un overflow o sobreflujo.
La precision es la distancia entre dos numeros representables adyacentes, y en un sistema de
punto fijo es la misma a lo largo del conjunto de numeros normales o 'span' del rango.
El error del sistema numerico se define como la precision/2, y es el mismo en todo el 'span' del
sistema numerico de punto fijo.
El rango, la precision y el error dependen del numero de digitos del sistema numerico y de la
posicion del punto. El numero de digitos determina la cantidad de numeros normales que podemos
representar.
En las computadoras el sistema numerico empleado es el binario, y a cada digito binario se le
llama 'bit'. Un numero en punto fijo en sistema binario consta entonces de una cadena de n bits de los
cuales s bits son fraccion. Si s = 0 el numero es un entero.
Los sistemas numericos binarios representando numeros sin signo, es decir magnitudes se les
llama 'unsigned' o 'ufixed' en formato [n,s]. Unsigned de n bits con s bits como fraccion.

En las computadoras para poder manejar numeros en punto fijo muy grandes, y numeros muy
pequeños necesitamos que n el numero de bits de los sistemas numericos sean de muchos bits. El punto
binario s se le puede colocar virtualmente en cualquier posicion.

En las computadoras existen instrucciones que manejan tipos de datos en punto fijo. El numero
de bits del dato siempre es finito y esta dado por la construccion de la computadora, el punto (binario)
es responsabilidad del programador saber donde lo coloca imaginariamente. Es mas facil trabajar
siempre pensando que manejamos numeros enteros, o cero bits de parte fraccionaria.
Cuando en los calculos aritmeticos los resultados (aun los parciales) caen dentro del rango pero
no necesariamente en un numero exactamente representable hay que hacer redondeo hacia algun
numero vecino representable. Debemos estar al tanto como lo hace la computadora ya que es una
fuente extra de error (por cuantizacion) en el procesamiento. Si los calculos caen fuera de rango,
tenemos overflow, y tambien hay que saber como lo maneja la maquina, es decir como esta diseñado el
hardware que los maneja (error por sobreflujo, el cual hay que tratar que no suceda).

En un sistema numerico binario de punto fijo cada uno de los digitos binarios solo puede tomar
un valor '0' o '1' (se les llama 'bit's), y usan notacion pesada, es decir el digito vale segun su
posicion dentro del numero (tal como la notacion pesada de los numeros decimales).
(a5a4a3a2a1a0.a-1a-2a-3)2
El bit de mayor peso se situa mas hacia la izquierda y se le llama 'BIT MAS SIGNIFICATIVO'
o 'MSB' y el bit de menor peso situado mas hacia la derecha se llama 'BIT MENOS SIGNIFICATIVO'
o 'LSB'.
Normalmente los bits se asocian con un indice segun su peso. A partir del punto binario la parte
entera usa indices positivos a partir del cero, e indices negativos para la parte fraccionaria.
Es mas sencillo trabajar con numeros enteros y al ultimo hacer el ajuste si es que hay parte
fraccionaria, y en este caso la numeracion de los digitos binarios va de n-1, n-2, ..., 1, 0
para un sistema de n bits, y se dice que numeramos descendente sin indexar con numeros negativos:
[n-1:0]
(a8a7a6a5a4a3a2a1a0. x 2-3)2

Si bien las computadoras procesan numeros en sistema binario, para los humanos cuando hacen
calculos en ese sistema, tienen que verselas con gran cantidad de bits, y resulta muy dificil recordar
esas cadenas de 'unos y ceros' tan grandes, pero pueden emplear otros sistemas numericos con base
potencias de dos (ejemplo octal, hexadecimal, ... ) como equivalentes mas faciles de manejar, y
entonces tambien es necesario que aprendan a representar y hacer aritmetica basica con los numeros en
estos sistemas y su rapida conversion a los sistemas binarios.
2.2.- Numeros en punto fijo con signo.

• 2.2.1.- Sistemas numericos en Signo-magnitud


En los sistemas decimales se inventan los signos (+,-) seguidos de la magnitud. A esta
representacion se le llama signo-magnitud.
En sistema binario no se inventan otros simbolos y se define que el signo se represente en el bit
mas significativo (MSB) con '0' si es positivo o '1' caso contrario.
Tiene el defecto que para el cero tenemos 2 representaciones "(0)000" y "(1)000", que
ademas que en matematicas no existe el -0, nos quita una combinacion en el rango valido.
Las operaciones aritmeticas con este tipo de datos no se prestan para un hardware simplificado,
ya que no se puede tratar el bit de signo como los de la magnitud.
El rango en la recta de los numeros ahora incluye numeros negativos y positivos, y el cero tiene
dos representaciones.
La precision es la distancia entre 2 numeros adyacentes, y es igual a lo largo de todo el 'span'
del sistema.
El error es la precision/2, ya que es la distancia maxima entre un numero no exactamente
representable a cualquiera de sus dos vecinos mas cercanos totalmente representables, es decir es igual
al caso de los unsigned.
El hardware que maneja este sistema numerico se puede diseñar para tratar el overflow y el
redondeo de diferentes maneras, tal como en el caso de los numeros binarios unsigned.
Los digitos binarios de la magnitud usan notacion pesada, los del signo no (signo-magnitud). En
las operaciones aritmeticas de numeros con signo entra en accion solo la parte magnitud, y el signo se
ajusta segun el resultado.

• 2.2.2.- Signo Complemento a Unos.


Los numeros binarios positivos se representan igual que en signo-magnitud, y por definicion los
negativos por el complemento a unos del positivo correspondiente.
Para obtener el complemento a unos de un numero basta con intercambiar '0' por '1' o
viceversa, incluido el bit de signo. Es decir la operacion de multiplicar x-1 en este sistema se realiza
mediante la complementacion de todos los bits del numero, incluido el bit de signo.
De nueva cuenta tenemos dos ceros "(0)000" (+0) y "(1)111" (-0).
El rango para un sistema entero de n bits esta dado por [-(2(n-1)-1):+(2(n-1)-1)],
la precision es 1, y el error 0.5.

Todos los numeros positivos tienen el bit de signo '0', y los negativos '1'.
Todos los bits tienen peso, incluido el del signo (posicion n-1) con peso -(2n-1-1).
Las operaciones aritmeticas implementadas para este sistema numerico, aunque tratan el signo
como parte del numero necesitan ajustes que implican mas hardware, por lo que normalmente no se
emplea.
El overflow debe diseñarse como manejarlo en hardware.
El redondeo tiene mas formas de manejarlo en hardware que en el caso de numeros unsigned.

• 2.2.3.- Signo Complemento a Dos.


Se les llama numeros con 'signo-complemento a 2's' o 'fixed' con formato [n,s]. Son numeros
signados o 'Signed' de n bits con s bits de fraccion.
Los sistemas numericos en signo-complemento a dos representan los numeros positivos igual
que en signo-magnitud o en signo-complemento a 1's, y los negativos como el complemento a dos del
positivo correspondiente.
El complemento a dos de un numero binario se obtiene sumandole 1 al complemento a unos. En
hardware esto es relativamente sencillo de obtener.
Se tiene solo un cero "(0)000" pues su complemento a 2's es igual.
El rango va de [-2(n-1) : +(2(n-1)-1)], es decir tiene un numero mas en la parte negativa
respecto a la positiva, y usa todas las combinaciones posibles para representar diferentes numeros.
La precision es 1 en todo el span, y el error 0.5 para el caso de enteros.
Esta es la representacion de numeros con signo por defecto en las computadoras.
Los numeros tienen la notacion posicional, incluido el bit de signo, siendo el peso del bit de
signo un valor negativo -2(n-1) (caso de enteros).
La aritmetica de los numeros en signo-complemento a dos se hace incluyendo el bit de signo
como parte del numero, y es ampliamente usado ya que resulta en hardware muy simplificado.
En la extension de un numero con signo-complemento a 2's de un tamaño menor a uno menor se
hace extendiendo el signo hasta el numero de bits adecuado. Es decir '0's a la izquierda, o '1's a la
izquierda no afectan el numero siempre que el bit replicado sea el bit de signo.
Rango, precision, y error son como en los otros sistemas, notando que por ejemplo para
'fixed'[8,0] el rango sera [-128:+127], precision 1,y error uniforme de 0.5 en todo el span.
El overflow pude manejarse en hardware:
• saturando al valor positivo o negativo maximo, llamado 'sature' (implica mas hardware) o
• truncando ('wrap'), menos hardware pero de efectos catastroficos si no se sabe como usarlo
pues de un numero positivo que se satura pasamos a uno negativo, o viceversa.
El redondeo puede ser:
• hacia el mas cercano, cuando el numero no exactamente representable se aproxima al
representable o normal que produce el menor error.
• hacia cero, en donde los numeros negativos o positivos se aproximan al normal mas
cercano en la direccion cero.
• hacia +inf, en donde los numeros negativos o positivos se aproximan al normal mas
cercano en la direccion mas infinito o 'ceil'.
• hacia -inf, en donde los numeros negativos o positivos se aproximan al normal mas cercano
en la direccion menos infinito o 'floor'.
• y algunos otros metodos mas ... .
• 2.2.4.- Numeros con signo en representacion exceso o polarizados.
Se emplean entre otros usos para representar los exponentes positivos y negativos en los
numeros en punto flotante.
El valor en binario del numero se le resta el exceso y este es el valor con signo que representa.
Por ejemplo un sistema numerico de 4 bits en exceso 7 podria representar la combinacion:
"0000" como el -7 (0-7);
y el "1111" como el +8 (15-7);
el "0111" correspondera con el 0 (7-7).

La seleccion del exceso es libre, pero para balancear el mismo numero de positivos y negativos
se suele seleccionar alrededor del valor central del numero binario, o bien buscando que los numeros
positivos tengan el bit de signo '1' y los negativos '0'.
Solo tienen un cero.
Usa todas las combinaciones de los bits para representar diferentes numeros, aunque es usual
reservar para usos especiales los casos extremos.
La comparacion entre numeros signados es muy rapida en este sistema.
Los sistemas numericos binarios de punto fijo entonces son una cadena de '1's y '0's que
representan diferentes numeros segun sea su formato:
'ufixed [n, s]' o 'fixed [n, s]'; cada uno con su propio rango, precision, error, modo
de redondeo, modo de overflow.
Las computadoras tienen instrucciones que manejan datos de 8, 16, 32, 64, 128 bits en notacion
de punto fijo, tanto para numeros sin signo como signados en complemento-2's.

Estudien el material Cap2 del libro Murdocca&Heuring que se les proporciona. Analicen los
ejemplos de aritmetica que trae y si surgen dudas me pueden preguntar y tratare de aclararlas.

2.2.5.- Sistemas numericos en representacion de punto flotante... sera para la siguiente sesion
(Tomado del Murdocca&Heuring)

Atte: Prof. Victor G. Rodriguez Tapia.

18 Julio 2022.

También podría gustarte

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy