3aSesionAC NumerosPuntoFijo T22P
3aSesionAC NumerosPuntoFijo T22P
3aSesionAC NumerosPuntoFijo T22P
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.
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.
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)
18 Julio 2022.