MÓDULO 1 SISTEMAS DE NUMERACIÓN. J I - ugr.eseaznar/sistemas_representacion_numeros.pdf ·...
Transcript of MÓDULO 1 SISTEMAS DE NUMERACIÓN. J I - ugr.eseaznar/sistemas_representacion_numeros.pdf ·...
Enrique R. AznarDpto. de Álgebra
Página web personal
Página de Abertura
Contenido
JJ II
J I
Página 1 de 41
Atrás
Pantalla grande/pequeña
Cerrar
MÓDULO 1SISTEMAS DE NUMERACIÓN.
¿Cómo se representan los números?
1. Introducción. 5Definición 1. 6Definición 2. 6Definición 3. 6
2. Sistemas de numeración posicional con raíz o base fija. 72.1. Números reales sin signo, con punto decimal fijo. 7
Definición 4. 7Lema 1. 8Ejemplo 1. 9Ejemplo 2. 9
2.2. Enteros sin signo. 9Definición 5. 10Lema 2. 10Ejemplo 3. 10
Enrique R. AznarDpto. de Álgebra
Página web personal
Página de Abertura
Contenido
JJ II
J I
Página 2 de 41
Atrás
Pantalla grande/pequeña
Cerrar
Definición 6. 102.3. Enteros con signo. 11
Definición 7. 11Ejemplo 4. 11
2.4. Enteros con sesgo. 12Definición 8. 12Ejemplo 5. 13Lema 3. 13
2.5. Enteros con signo complementados. 14Definición 9. 14Lema 4. 15Ejemplo 6. 16Definición 10. 17
2.6. Complemento al dos. 17Ejemplo 7. 18Definición 11. 18Lema 5. 19Ejemplo 8. 19Lema 6. 20
2.7. Complemento al uno. 21Ejemplo 9. 21
3. Representación de números reales. 22Ejemplo 10. 23
Enrique R. AznarDpto. de Álgebra
Página web personal
Página de Abertura
Contenido
JJ II
J I
Página 3 de 41
Atrás
Pantalla grande/pequeña
Cerrar
3.1. Números en coma flotante. 24Ejemplo 11. 24Definición 12. 25Definición 13. 26Definición 14. 27
3.2. Sistemas logarítmicos. 28Definición 15. 28Ejemplo 12. 28Ejemplo 13. 29
4. Sistemas de numeración residuales. 30Definición 16. 31Ejemplo 14. 31
5. Ejercicios. 33Ejercicio 1. 33Ejercicio 2. 33Ejercicio 3. 34Ejercicio 4. 34Ejercicio 5. 34Ejercicio 6. 34Ejercicio 7. 35Ejercicio 8. 35Ejercicio 9. 35Ejercicio 10. 35
Enrique R. AznarDpto. de Álgebra
Página web personal
Página de Abertura
Contenido
JJ II
J I
Página 4 de 41
Atrás
Pantalla grande/pequeña
Cerrar
6. Bibliografía 367. Test de repaso. 36
Enrique R. AznarDpto. de Álgebra
Página web personal
Página de Abertura
Contenido
JJ II
J I
Página 5 de 41
Atrás
Pantalla grande/pequeña
Cerrar
1. INTRODUCCIÓN.
Los sistemas de representación de números han avanzado en paralelo con laevolución del lenguaje.
El más antiguo método de representación consiste en el uso de piedras opalillos. Gradualmente, conforme números mayores eran usados, este sis-tema se hizo impracticable.
Primero se agrupaban las piedras o palillos en grupos, hasta que se empezóa usar piedras mayores o distintas para representar al grupo.
Su evolución llevó a usar símbolos en vez de objetos. Un ejemplo de esteproceso lo constituye el sistema de numeración romana que consistía enusar los símbolos
I , V , X , L, C , D, M , ((I )), (((I )))
para representar grupos de
1, 5, 10, 50, 100, 500, 1000, 10000, 100000
respectivamente.Sin embargo, el sistema romano no es conveniente ni para representar grandesnúmeros ni para hacer aritmética.
El primer sistema que se usó para simplificar la aritmética lo introdujeron loschinos y era de tipo posicional.
Enrique R. AznarDpto. de Álgebra
Página web personal
Página de Abertura
Contenido
JJ II
J I
Página 6 de 41
Atrás
Pantalla grande/pequeña
Cerrar
Definición 1. Se llama sistema posicional de representación de númerosaquel en que el valor de un símbolo, no sólo depende del mismo, sino tam-bién de la posición que ocupa entre los demás.En un sistema posicional, la unidad correspondiente, en cada posición, puedeser un múltiplo constante de la unidad en la posición inmediata anterior.En este caso, a la constante se le llama la base o raíz del sistema de nu-meración.
Casi todos los sistemas modernos son de este tipo. Por ejemplo,
Definición 2. El sistema decimal es un sistema posicional que usa comoconstante multiplicativa el 10 y como conjunto de dígitos el rango de enteros[0,9].
El sistema de representación de intervalos de tiempo es, sin embargo, unejemplo de
Definición 3. Un sistema posicional de raíz mixta es un sistema posicionaldonde la constante multiplicativa cambia con la posición.En este sistema se habla de vector de raíces o bases.
Por ejemplo, para los intervalos de tiempo de días, horas, minutos y segundosse usa el vector
24, 60, 60, 1
Enrique R. AznarDpto. de Álgebra
Página web personal
Página de Abertura
Contenido
JJ II
J I
Página 7 de 41
Atrás
Pantalla grande/pequeña
Cerrar
Los sistemas posicionales de raíz mixta tienen algoritmos complejos para suaritmética. Mientras que de raíz o base fija son bastante más sencillos.
La popularidad de estos últimos se basa en la existencia de algortimos sim-ples y elegantes para todas las operaciones aritméticas.
2. SISTEMAS DE NUMERACIÓN POSICIONAL CON RAÍZ O BASE FIJA.
2.1. Números reales sin signo, con punto decimal fijo.
Definición 4. Un sistema de numeración posicional con base fija está basa-da en un entero positivo fijo, la base o raíz r y un conjunto de dígitos{0,1, . . . ,r −1}1.
Considerar un punto decimal fijo equivale a representar un número real xpositivo, por un vector de dígitos de longitud k+l , donde los k primeros dígi-tos representan la parte entera del número x y los l siguientes representanla parte fraccionaria.
De forma que la sucesión o vector de dígitos
xk−1xk−2 · · ·x1x0.x−1x−2 · · ·x−l
1No es imprescindible y existen sistemas posicionales con otros conjuntos de dígitos.Cuando no usamos ese conjunto de dígitos la representación puede no ser única.
Enrique R. AznarDpto. de Álgebra
Página web personal
Página de Abertura
Contenido
JJ II
J I
Página 8 de 41
Atrás
Pantalla grande/pequeña
Cerrar
representa el número real
x =k−1∑i=−l
xi r i
Llamamos ul p (unit in least significant position) al menor número real,estricto positivo, que puede representarse con un vector de k + l dígitos.Así, ul p es el número representado por la sucesión 0 · · ·0,0 · · ·1.O sea,
ul p = r−l = 0,0 · · ·1Con k y l fijos decimos que el sistema es de punto fijo (fixed point).
En este sistema, el máximo número real (positivo) que puede representarsecorresponde a la sucesión de dígitos
r −1 · · ·r −1.r −1 · · ·r −1
Como se comprueba sumando ul p = r−l = 0,0 · · ·1, corresponde a la repre-sentación del número real positivo
max = r k − r−l = r k −ul p
Como consecuencia de las definiciones, el siguiente resultado es inmediato:
Lema 1. Con un sistema de punto fijo, se pueden representar todos losnúmeros reales positivos en el intervalo [0,max] de ul p en ul p.O sea, todos los números reales de la sucesión
{λ∗ul p }λ=0,...,r k+l−1
Enrique R. AznarDpto. de Álgebra
Página web personal
Página de Abertura
Contenido
JJ II
J I
Página 9 de 41
Atrás
Pantalla grande/pequeña
Cerrar
Ejemplo 1. Con números binarios, con 4 bits, tomando k = 3 (parte entera)y l = 1 (parte fraccionaria), podemos representar biyectívamente todos losnúmeros del conjunto {0, 0.5, 1, . . . , 7, 7.5}.O sea, el intervalo [0, 7.5], de 0,5 en 0,5, de la siguiente forma
0000 = 0, 0001 = 0.5, 0010 = 1, . . . , 1101 = 6.5, 1110 = 7, 1111 = 7.5
Ejemplo 2. Un sistema posicional con raíz negativa b = −r y conjunto dedígitos el rango de enteros [0,r −1] también tiene sentido.
x = (xk−1xk−2 · · ·x1x0.x−1x−2 · · ·x−l )−r = ∑i
xi (−r )i =
= ∑i par
xi r i − ∑i impar
xi r i
El sistema negabinario se define como el sistema posicional que usa comoconstante multiplicativa el −2 y los bits 0 y 1.
Los números naturales 0,1,2, . . . pueden ser representados como númerosreales con punto decimal fijo sin parte fraccionaria, o sea con l = 0 o equiva-lentemente ul p = r 0 = 1.
2.2. Enteros sin signo. Esta representación de los números enteros posi-tivos o naturales es llamada en inglés unsigned integers.
Constituyen un tipo de dato básico o primitivo, en casi todos los lenguajesde programación.
Enrique R. AznarDpto. de Álgebra
Página web personal
Página de Abertura
Contenido
JJ II
J I
Página 10 de 41
Atrás
Pantalla grande/pequeña
Cerrar
Definición 5. Para raíz r , un natural n que se represente con k cifras será
n = ak−1r k−1 +·· ·+a0
Claramente, con k dígitos, uno pueden representar todos los números natu-rales desde 0 hasta r k−1. Esto es, el intervalo [0,r k−1] de números naturales.
Ahora, por definición de logaritmo, se tiene
Lema 2. Un natural, n, necesita para representarse como máximo
k = max = blogr nc+1 = dlogr (n +1)eEjemplo 3. Con números binarios, con 4 bits, podemos representar biyectí-vamente todos los números enteros en el intervalo [0,15] por
0000 = 0, 0001 = 1, 0010 = 2, . . . , 1101 = 13, 1110 = 14, 1111 = 15,
En base r = 2, la aritmética módulo 2k de estos números, suele estar imple-mentada en hardware. Casi todos los sistemas operativos acceden a ellos através de registros e instrucciones de código máquina2.
Definición 6. Se produce desbordamiento (overflow) cuando el resultadotiene más de k dígitos. En cuyo caso, no se consideran los dígitos (bits parar = 2) más a la izquierda o más significativos (los superiores a k).
2Con k la longitud de palabra del procesador. Hoy día los ordenadores tienen k = 64 bits.
Enrique R. AznarDpto. de Álgebra
Página web personal
Página de Abertura
Contenido
JJ II
J I
Página 11 de 41
Atrás
Pantalla grande/pequeña
Cerrar
Así, la aritmética de estos números para la suma y producto es la aritméticamodular, módulo3 r k . Como son positivos, la resta sólo tiene sentido cuandoel sustraendo es menor que el minuendo.
Sin embargo, es posible manejar también los enteros negativos.
2.3. Enteros con signo. La representación de los números enteros posi-tivos y negativos es llamada en inglés signed integers.
Para representar enteros negativos se introduce la representación donde sereserva el dígito (bit para r = 2), más siginificativo para el signo, con elconvenio siguiente.
Definición 7. Si el bit más significativo es 1 (bit activado) representa unnúmero negativo y 0 (bit desactivado) uno positivo.
Así, se consiguen representar todos los enteros en el rango [−r k−1,r k−1] conel inconveniente de que el cero tiene dos representaciones +0 y −0.O sea,
0 · · ·0 = 0 = 10 · · ·0Ejemplo 4. Con 4 bits, los enteros con signo que podemos representar (nobiyectívamente) son todos los números enteros en el intervalo [−7,7] por
0001 = 1, 0010 = 2, 0011 = 3, 0100 = 4, 0101 = 5, 0110 = 6, 0111 = 7,
3Para los procesadores de hoy día, r k = 264 = 18446744073709551616
Enrique R. AznarDpto. de Álgebra
Página web personal
Página de Abertura
Contenido
JJ II
J I
Página 12 de 41
Atrás
Pantalla grande/pequeña
Cerrar
0000 = 0 = 1000,
1001 =−1, 1010 =−2, . . . , 1101 =−5, 1110 =−6, 1111 =−7
Las ventajas de esta representación incluyen su apariencia intuitiva, simplici-dad conceptual, rango simétrico y sobre todo la simple negación que consisteen complementar el bit más significativo (activarlo o desactivarlo).
La principal desventaja es que la suma de dos enteros con signo diferente(resta) se implementa de forma diferente a la suma cuando tienen el mismosigno. Por todo lo anterior, esta representación no es muy utilizada.
2.4. Enteros con sesgo. Esta representación de los números naturales esllamada en inglés biased representation.
Una manera de representar enteros con signo sin que halla una doble repre-sentación del cero consiste en sumar (sesgar) al entero inicial una cantidadfija llamada bias tal que trasforme el rango [−bi as,max−bi as] en el rango[0,max].
Definición 8. Esta representación es llamada exceso-bias cuando se sumala cantidad bias, por ejemplo en inglés excess-3 cuando se suma 3 o excess-128 coding cuando se suma 128.
Enrique R. AznarDpto. de Álgebra
Página web personal
Página de Abertura
Contenido
JJ II
J I
Página 13 de 41
Atrás
Pantalla grande/pequeña
Cerrar
En una representación con k-bits, tomando bi as = 2k−1, se consigue queel bit más significativo indique el signo del entero representado. Aunque laregla es la contraria de la usual.
Cuando este bit está activado (vale 1) representa un número positivo y cuan-do está desactivado (vale 0) representa un número negativo. Además, parabase r = 2 y bias igual a 2k−1 o 2k el rango transformado es casi simétrico.
Ejemplo 5. Con bias= 24 = 16. O sea, en el sistema exceso-16 , podemosrepresentar biyectívamente todos los números enteros en el intervalo [−8,7]por
0001 =−7, 0010 =−6, . . . , 0101 =−3, 0110 =−2, 0111 =−1,
1000 = 0, 1001 = 1, 1010 = 2, 1011 = 3, 1100 = 4, 1101 = 5, 1110 = 6, 1111 = 7
De las definiciones, se tiene
Lema 3. La suma y la resta de dos enteros, x e y , se implementan con-siderando las igualdades inmediatas:
x + y +bi as = (x +bi as)+ (y +bi as)−bi as
x − y +bi as = (x +bi as)− (y +bi as)+bi as
Para base r = 2, para números con k-bits y bi as = 2k−1, sumar o restar bi asconsiste en complementar el bit más significativo. Por tanto, en este caso lasuma y la resta se implementan muy fácilmente.
Enrique R. AznarDpto. de Álgebra
Página web personal
Página de Abertura
Contenido
JJ II
J I
Página 14 de 41
Atrás
Pantalla grande/pequeña
Cerrar
Sin embargo, la implementación de la multiplicación y división son máscomplicadas que en otras representaciones.
Por esta razón, la representación con sesgo se suele limitar a la parte delexponente de la representación de un número en coma flotante, ya que eneste caso, sólo necesitan sumarse o restarse.
2.5. Enteros con signo complementados.
Definición 9. En esta representación (complement representation), se eligeuna constante de complementación suficientemente grande M , tal que unentero negativo x se represente por la cantidad positiva M +x.
La diferencia, con la representación con sesgo, es no se la sumamos a losenteros positivos originales que se quedan tal cuál.
Por tanto, para representar enteros pertenecientes al rango [−N ,+P ], la con-stante M se elige tal que
N +P +1 ≤ M
de esta forma se consigue que no haya solapamiento. Esto es, que la repre-sentación sea única para enteros en el rango dado.
Además, tomando
M = N +P +1
Enrique R. AznarDpto. de Álgebra
Página web personal
Página de Abertura
Contenido
JJ II
J I
Página 15 de 41
Atrás
Pantalla grande/pequeña
Cerrar
se consigue un rango transformado discreto sin huecos desde 0 hasta
M −1 = N +P
De forma que los negativos, [−N ,−1], se transforman biyectivamente en elrango positivo, [P +1, N +P ], invirtiendo el orden.
Esto es, el rango inicial de números enteros [−N ,+P ] se transforma biunívo-camente en el rango de números naturales [0, N +P ] = [0, M −1].
Como módulo M , sumar M + x equivale a sumar x (sumar M −1 equivale asumar −1). Así, tenemos
Lema 4. La suma o resta de los enteros originales módulo M coincide conla suma módular en el rango transformado. �
En la aritmética modular, el resultado no se desborda. En este caso, la restapuede ser realizada complementando el sustraendo y sumando en el rangotransformado.
O sea, la suma y la resta son esencialmente la misma operación. Esta es laprincipal ventaja de la representación complementada.
Esta representación también tiene sentido para números reales (positivos onegativos) con punto decimal fijo. Todos los números se representan con k+ldígitos (k dígitos enteros y l fraccionarios).
Enrique R. AznarDpto. de Álgebra
Página web personal
Página de Abertura
Contenido
JJ II
J I
Página 16 de 41
Atrás
Pantalla grande/pequeña
Cerrar
En este caso, los números reales que se representan van de ul p = r−l en ul pen vez de ser números enteros e ir de uno en uno.
Además, para representar el rango [−N ,+P ], la menor constante que sueletomarse es
M = N + P + ul p
siendo el rango transformado [0, N +P ] = [0, M − ul p]. Por ejemplo,
Ejemplo 6. Para representar el rango discreto de números reales
[−6.000, 5.999]
que van de 0,001 en 0,001, tomamos la constante
M = 12,000 = 6 + 5,999 + 0,001
Se obtiene un rango trasformado de
[0.000, 11.999]
donde los números reales positivos van también de 0,001 en 0,001.Observaremos que en este ejemplo,
k = 1, l = 3, ul p = 10−3
y que la constante de complementación que hemos elegido es
M = 12,000 = N + P + ul p
de esta forma se consigue un rango transformado discreto sin huecos.O sea, biyectivo con el original.
Enrique R. AznarDpto. de Álgebra
Página web personal
Página de Abertura
Contenido
JJ II
J I
Página 17 de 41
Atrás
Pantalla grande/pequeña
Cerrar
En la representación de este ejemplo, observamos que las operaciones aux-iliares necesarias para sumar o restar consisten en la complementación osumar M = 12 y en la división módulo M = 12.
Ambas operaciones en general son más costosas que la suma o resta denúmeros reales en el rango original. Lo que es una desventaja.
Para simplificar y evitar este inconveniente se suelen elegir las siguientes dosconstantes
M = r k
o biénM = r k −ul p = r k − r−l
Definición 10. Las llamamos respectivamente complemento a la raíz, queen base r = 2 se llama complemento al dos y complemento a la raíz dis-minuída, que en base r = 2 se llama complemento al uno.
2.6. Complemento al dos. Tomamos una representación complementada,con constante de complementación, M = 2k .En base dos, con k bits, el rango de números representables en un sistema decomplemento al dos puede ser
[−2k−1,2k−1 −ul p]
ya que entonces
N + P + ul p = 2k−1 + (2k−1 − ul p) + ul p = 2k = M
Enrique R. AznarDpto. de Álgebra
Página web personal
Página de Abertura
Contenido
JJ II
J I
Página 18 de 41
Atrás
Pantalla grande/pequeña
Cerrar
Aunque, puede ser otro rango cualquiera [−N ,+P ] verificando
M = 2k = N + P + ul p
Siempre el rango transformado será [0, N +P ] = [0,2k − ul p]. Así,
Ejemplo 7. Para representar el rango discreto de números reales binarios
[−11.00, +0.11]
que van de 2−2 = 0,01 en 2−2 = 0,01, se puede tomar la constante de comple-mentación M = 22 = 100, ya que
N + P + ul p = 11,00 + 0,11 + 0,01 = 100,00 = 22
y se obtiene un rango trasformado binario de
[0.00, +11.11]
donde los números reales positivos van también de 2−2 = 0,01 en 2−2 = 0,01.
La ventaja de esta representación de complemento al dos es que el cálculodel complemento de un número es muy sencilla basta complementar cada bity luego sumar ul p. Ya que
2k −x = [(2k −ul p)−x]+ul p = xcompl +ul p
donde si x es un número escrito en binario
Definición 11. xcompl consiste en complementar cada bit de x.
Enrique R. AznarDpto. de Álgebra
Página web personal
Página de Abertura
Contenido
JJ II
J I
Página 19 de 41
Atrás
Pantalla grande/pequeña
Cerrar
y hemos aplicado el siguiente lema inmediato.
Lema 5. Si ul p = 2−l , entonces
2k −ul p = 2k −2−l = 1. . .1,1 . . .1
con k bits antes del punto y l bits después del punto.Además,
x + xcompl = 2k −ul p
�
En el ejemplo anterior
22 −x = xcompl +0,01
Además, la reducción módulo M = 2k (en nuestro ejemplo M = 22 = 100) sehace ignorando el acarreo del dígito más significativo.
Ejemplo 8. Para enteros en base r = 2, con k = 4 y l = 0, con constante decomplementación M = 24 = 10000. Podemos representar el rango
[−8,+7] = [−1000,+0111]
ya queN + P + ul p = 8+7+1 = 16 = 24 = M
biunívocamente en el rango
[0, N +P ] = [0,24 − 1] = [0,15] = [0000,1111]
Enrique R. AznarDpto. de Álgebra
Página web personal
Página de Abertura
Contenido
JJ II
J I
Página 20 de 41
Atrás
Pantalla grande/pequeña
Cerrar
que son todos los números naturales que se pueden escribir con 4 bits.
La representación de complemento al dos tiene la ventaja de que se puededetectar fácilmente si un número representado es negativo.
Basta mirar su dígito más significativo, si está activado (vale 1) es negativoy si desactivado (vale 0) es positivo.
En el caso negativo, su valor se calcula restando la constante M .Así, en el último ejemplo M = 24 = 10000, el 15 = 1111 es negativo y repre-senta al 15−16 =−1.
Nótese que, el 1 = 0001 es el complemento al dos del 1111:
10000−1111 = 0001
y recíprocamente, el 1111 es el complemento al dos de 1 = 0001.Para el mismo cálculo, también se tiene el siguiente
Lema 6. Si la expresión de un número binario, x, en complemento al dos es
x = (xk−1xk−2 · · ·x1x0.x−1 · · ·x−l )2
Entonces, el valor decimal del número representado es
x =−xk−12k−1 +k−2∑i=−l
xi 2i
Enrique R. AznarDpto. de Álgebra
Página web personal
Página de Abertura
Contenido
JJ II
J I
Página 21 de 41
Atrás
Pantalla grande/pequeña
Cerrar
Demostración: Si el dígito significativo es xk−1 = 0 el número es positivo yla igualdad del lema es inmediata.
Si xk−1 = 1, el número es negativo y por definición se calcula así
x =−[2k − (1xk−2)xk−2 · · ·x1x0.x−1 · · ·x−l )2] =−2k−1 +k−2∑i=−l
xi 2i
2.7. Complemento al uno. Tomamos una representación complementada,con constante de complementación, M = 2k −ul p.En base dos, con k bits, el rango de números representables en un sistema decomplemento al uno puede ser
[−(2k−1 − ul p),2k−1 − ul p]
ya que entonces
N + P + ul p = (2k−1 − ul p) + (2k−1 − ul p) + ul p = 2k − ul p = M
Aunque, puede ser otro rango cualquiera [−N ,+P ] verificando
M = 2k − ul p = N + P + ul p
Siempre el rango transformado será [0, N +P ] = [0,2k − ul p]. Así,
Ejemplo 9. Para k = 4 y l = 0, con la constante es M = 15 = 1111.Se representa el intervalo de enteros
[−7,+7] = [−111,+111]
Enrique R. AznarDpto. de Álgebra
Página web personal
Página de Abertura
Contenido
JJ II
J I
Página 22 de 41
Atrás
Pantalla grande/pequeña
Cerrar
ya que entonces
N + P + ul p = 7+7+1 = 15 = 24 −1 = M
siendo el rango el intervalo
[0, N +P ] = [0,2k − ul p] = [0,15] = [0000,1111]
Pero esta representación no es biunívoca ya que el cero tiene dos representa-ciones 0 y también 15 = 1111 que representaría al −0.
Este es un inconveniente. Aunque esta representación tiene algunas ventajasen su implematación hardware, hoy día es inusual.
Observaremos, que el complemento al uno de un número x se calcula sim-plemente complementando cada bit, ya que por el lema 5
(2k −ul p)−x = xcompl
3. REPRESENTACIÓN DE NÚMEROS REALES.
Claramente, ninguna representación finita es capaz de representar todos losnúmeros reales, incluso dentro de un rango pequeño.
Así pues, la mayor parte de los números reales tendrán que ser representadosde una manera aproximada.
Enrique R. AznarDpto. de Álgebra
Página web personal
Página de Abertura
Contenido
JJ II
J I
Página 23 de 41
Atrás
Pantalla grande/pequeña
Cerrar
Varios métodos pueden ser usados: números con punto decimal fijo (vistosanteriormente), números racionales (que consiste en aproximar un númeroreal por el cociente de dos enteros), sistema de numeración logarítmico (queconsiste en representar un número real por su signo y su logaritmo).
Finalmente, el más utilizado que consiste en aproximar un número real porun número en coma flotante.
Antes de definirlos, consideremos el siguiente
Ejemplo 10. Sean dos números con punto decimal fijo
x = 0000 0000. 0000 10012
y = 1001 0000. 0000 00002
observaremos que aunque el más pequeño parece más propenso a tener al-gún error de redondeo, ninguno de sus cuadrados x2, y2 son representablesen el sistema con punto decimal fijo, con k = 8 = l .
En el primer caso, x2 produce un número demasiado pequeño (underflow)mientras que y2 produce uno demasiado grande (desbordamiento o over-flow).
Sin embargo, los dos números pueden ser representados en la forma cientí-fica habitual
x = 1,0012 ×2−5 = 0,1001×2−4
y = 1,0012 ×2+7 = 0,1001×2+8
Enrique R. AznarDpto. de Álgebra
Página web personal
Página de Abertura
Contenido
JJ II
J I
Página 24 de 41
Atrás
Pantalla grande/pequeña
Cerrar
como ambos, 5 = 101 y 7 = 111, se pueden representar con tres bits.Los dos números anteriores se pueden codificar con siete u ocho bits comomáximo.
Como el exponente positivo o negativo lo que indica es que el punto decimalse mueva a derecha o izquierda, este sistema de representación se llama decoma flotante.
3.1. Números en coma flotante. Un número en coma flotante
x =±s ×bE
tiene cuatro componentes: el signo, el número significante s escrito conpunto decimal fijo (k=1), la base r = b que normalmente será dos o diez y elexponente E que a su vez puede ser positivo o negativo.
Es generalmente aceptado que el exponente E se codifique como un enterocon sesgo (biased representation), esto es su signo está integrado en el ex-ponente y depende del valor del sesgo (bias) elegido.
Ejemplo 11. Cuando el exponente es de 8 bits, el sesgo se suele elegir
bi as = 127 = 27 −1 = 11111112
y transforma el rango
[−bi as,max −bi as] = [−127,128] = [−1111111,10000000]
Enrique R. AznarDpto. de Álgebra
Página web personal
Página de Abertura
Contenido
JJ II
J I
Página 25 de 41
Atrás
Pantalla grande/pequeña
Cerrar
en el rango[0,255] = [0,11111111]
Así, el signo del exponente es positivo cuando su bit más significativo estáactivado y negativo cuando está desactivado.
Sin embargo, el signo del significante se codifica en el bit más significativocon el convenio usual de que 1 representa negativo y 0 positivo (al contrariode la representación del exponente).
Como hemos visto en el ejemplo 10, se pueden tomar dos representacionesen coma flotante, según consideremos significantes s ∈ [1,2) o bien s ∈ [0,1).O sea, según la parte entera de s valga 1 o bien 0.
Aunque la famosa norma IEEE/ANSI Standard 754, para la artimética encoma flotante, recomienda sólo la primera representación s ∈ [1,2).
De esa forma se puede ahorrar un bit en la codificación del significante ycodificar sólo la parte fraccionaria del mismo.
En el ejemplo 10, sólo se codificarían los tres bits F = 001 que constituyensu parte fraccionaria. Así,
Definición 12. Llamaremos fracción del número en coma flotante a la partefraccionaria del significante s ∈ [1,2).Diremos que la parte entera, 1, del significante constituye el bit oculto.
Enrique R. AznarDpto. de Álgebra
Página web personal
Página de Abertura
Contenido
JJ II
J I
Página 26 de 41
Atrás
Pantalla grande/pequeña
Cerrar
Definición 13. La norma IEEE/ANSI Standard 754 establece rigurosamentela codificación a adoptar según el tamaño de palabra del ordenador:
• para 32 bits el primer bit por la izquierda (más significativo) da elsigno del número, los siguientes ocho bits dan el exponente codifi-cado con bi as = 127 y los restantes 23 bits definen la fracción F delsignificante que tiene siempre parte entera uno. O sea que
s = 1+F /223 ∈ [1,2)
Siendo el número x representado en coma flotante en una palabrade 32 bits igual a
x =±(1+F /223)×2E−127
• para 64 bits el primer bit por la izquierda (más significativo) da elsigno del número, los siguientes once bits dan el exponente codifica-do con bi as = 1023 y los restantes 52 bits definen la fracción F delsignificante que tiene siempre parte entera uno. O sea que
s = 1+F /252 ∈ [1,2)
Siendo el número x representado en coma flotante en una palabrade 64 bits igual a
x =±(1+F /252)×2E−1023
Enrique R. AznarDpto. de Álgebra
Página web personal
Página de Abertura
Contenido
JJ II
J I
Página 27 de 41
Atrás
Pantalla grande/pequeña
Cerrar
El rango de valores en una representación de números en coma flotante estáformado por la unión de dos intervalos discretos y por tanto finitos
[−max,−mi n]⋃
[mi n,max]
dondemax = mayor Si g ni f i cante ×bmayor E xponente
mi n = menor Si g ni f i cante ×bmenor E xponente
Existen por tanto cuatro regiones o intervalos de desbordamiento de númerosque no se pueden aproximar con precisión que se clasifican en dos.
Definición 14. la región de desbordamiento por abajo (underflow) es
(−mi n,0) ∪ (0,mi n)
y la región de desbordamiento por arriba (overflow) es
(−∞,−max) ∪ (max,+∞)
La citada norma IEEE/ANSI establece además una codificación para ciertosvalores límite. Por ejemplo, para 64 bits son los siguientes
±0,0, Cero Si E = F = 0;±2−1074F, Caso denormal Si E = 0 y F 6= 0;±∞, Infinito Si E = 2047 y F = 0;±N aN (F /252), No un Número Si E = 2047 y F 6= 0.
Enrique R. AznarDpto. de Álgebra
Página web personal
Página de Abertura
Contenido
JJ II
J I
Página 28 de 41
Atrás
Pantalla grande/pequeña
Cerrar
Hoy día, prácticamente todos los ordenadores siguen al mencionada norma.Además, aunque un entero se puede representar en formato de coma flotante,tienen implementada en hardware dos ariméticas, una para enteros y otrapara números en coma flotante.
La razón es que la aritmética entera es más simple y más rápida que la decoma flotante.
Además, con la arimética entera, por software se pueden implementar los en-teros de precisión arbitraria, (mal) llamados a veces de precisión infinita.
La representación de punto fijo (fixed point) se puede considerar un casoespecial extremo de la representación de coma flotante (floating point) conexponente igual a cero (haciendo éste innecesario).
El otro caso extremo consiste en remover el significante, suponiendo quevale uno. Entonces se obtiene la siguiente representación.
3.2. Sistemas logarítmicos.
Definición 15. La representación logarítmica de un número, consiste en unarepresentación de coma flotante donde el significante no tiene parte frac-cionaria, siempre vale uno y es un dígito oculto.
Por ejemplo,
Enrique R. AznarDpto. de Álgebra
Página web personal
Página de Abertura
Contenido
JJ II
J I
Página 29 de 41
Atrás
Pantalla grande/pequeña
Cerrar
Ejemplo 12. Con 12 bits para exponente y en base dos, se puede definir unsistema de numeración logarítmico reservando el bit más significativo parael signo y de los 11 restantes, los cinco primeros junto con el de signo rep-resenta la parte entera del exponente en complemento al dos.
Los seis restantes bits representan la parte fracionaria del exponente en com-plemento al dos.Entonces,
ul p = 2−6 = 0,015625
y el rango del exponente es el intervalo discreto
[−32, 32−2−6] = [−32, 31.9844]
donde los exponentes representados van de ul p en ul p.Los números que se pueden representar son los del rango discreto
[2−32,231,9844] = [2.32831∗10−10, 4.4878∗109]
que forman una progresión geométrica de razón 22−6 = 1,01089
Ejemplo 13. El número que representa la sucesión de 12 bits
110110001011
en el sistema de numeración logarítmico descrito antes con el punto decimalen la mitad se calcula de la siguiente forma: Como el bit más significativo es
Enrique R. AznarDpto. de Álgebra
Página web personal
Página de Abertura
Contenido
JJ II
J I
Página 30 de 41
Atrás
Pantalla grande/pequeña
Cerrar
un uno (está activado) el y el exponente del número representado es negativo,y su valor se obtiene haciendo su complemento al dos que sale
001001,110101
si se calcula su parte entera vale
23 +1 = 9
y su parte fraccionaria vale1
2+ 1
4+ 1
16+ 1
64= 0,828125
luego el exponente vale−9,828125
y el número representado en consecuencia es
2−9,828125 = 0,00110012
que claramente está dentro de la progresión geométrica anterior.
4. SISTEMAS DE NUMERACIÓN RESIDUALES.
Por el teorema chino de los restos, dado un número entero que sea productode números primos entre si
M = m1 · · ·mr
Enrique R. AznarDpto. de Álgebra
Página web personal
Página de Abertura
Contenido
JJ II
J I
Página 31 de 41
Atrás
Pantalla grande/pequeña
Cerrar
existe un isomorfismo entre el grupo abeliano ZM y el producto directo
Zm1 ×·· ·×Zmr
Como consecuencia, todo número entero positivo se puede representar porsus restos módulo una sucesión de enteros primos entre si
m1,m2, . . . ,mr
Además esta representación es única, si el número es positivo en el intervalosemiabierto [0, M), con M = m1∗·· ·∗mr el producto de los módulos.
También se puede hacer única la representación de los números enteros, den-tro de un intervalo con M enteros consecutivos.Por ejemplo, todos los números enteros positivos y negativos en el intervalo
[−bM
2c,dM
2e)
Definición 16. Denotamos por RN S(m1|...|mr ) al sistema de numeraciónresidual correspondiente.
Ejemplo 14. Representa el número binario y = 10100100 en el sistema denumeración residual RN S(8 | 7 | 5 | 3).
Como el primer módulo es una potencia de dos, 8 = 23, el resto mod 8 esquedarnos con las tres últimas cifras en base dos.
Enrique R. AznarDpto. de Álgebra
Página web personal
Página de Abertura
Contenido
JJ II
J I
Página 32 de 41
Atrás
Pantalla grande/pequeña
Cerrar
O sea,y mod 8 = 10100100 mod 23 = 100
en base dos. O sea, 4 en base 10.Para las otras cifras se puede hacer una tabla look-up, que permita hacerel cambio de base con unas pocas sumas (en vez de divisiones).
Como el número y = 10100100 en base diez es la suma de la potencias dedos, correspondientes a sus bits activados,
y = 27 + 25 + 22
sus residuos o restos módulo 7, o bien 5, o bien 3, se pueden obtener de lasiguiente tabla de restos.
j 2 j 2 j Mod(7) 2 j Mod(5) 2 j Mod(3)123456789
248
163264
128256512
241241241
243124312
212121212
Enrique R. AznarDpto. de Álgebra
Página web personal
Página de Abertura
Contenido
JJ II
J I
Página 33 de 41
Atrás
Pantalla grande/pequeña
Cerrar
O sea,y Mod(7)= 2+4+4 = 10 Mod(7)= 3
y Mod(5)= 3+2+4 = 9 Mod(5)= 4
y Mod(3)= 2+2+1 = 5 Mod(3)= 2
Finalmente, nuestro número y = 10100100, escrito en el sistema de numeraciónresidual RN S(8 | 7 | 5 | 3) vale
y = (4 | 3 | 4 | 2)
5. EJERCICIOS.
Ejercicio 1. Dado un entero sin signo, x. Prueba
• x = (xk−1 · · ·x1x0)3 es par si y sólo si∑k−1
i=0 xi es par.• x = (xk−1 · · ·x1x0)2 es divisible por 3 si y sólo si∑
i parxi − ∑
i imparxi
es múltiplo de 3.• Generaliza lo anterior para base r y divisibilidad por r −1 y r +1.
Ejercicio 2. Dado el número negabinario x = (0001 1111 0010 1101)−2.
• Halla la representación de x en base 16 (hexadecimal).• Halla la representación de x en base −16 (negahexadecimal).
Enrique R. AznarDpto. de Álgebra
Página web personal
Página de Abertura
Contenido
JJ II
J I
Página 34 de 41
Atrás
Pantalla grande/pequeña
Cerrar
¿Sabrías describir un método para pasar de base r a −r y viceversa?.
Ejercicio 3. Calcule su DNI en binario, octal, hexadecimal y negahexadec-imal.
Ejercicio 4. Si α es una sucesión de ceros y unos, denotamos por u(α) elnúmero entero, sin signo, que representa. Por s(α) el número entero consigno. Por c1(α) el entero en el sistema complemento al uno y por c2(α) elentero en complemento al dos.Sea α su DNI en binario, con 26 bits, completado con ceros a la izquierdasu fuera necesario.
• ¿Representa α un entero con signo o sin signo?. ¿Y con 25 bits?. Encaso afirmativo diga que número negativo representa.
• Calcule u(α), s(α), c1(α) y c2(α) sin completar nada.
Ejercicio 5. Los enteros en el rango [−127,+127] se pueden representar con8-bits en cualquiera de los siguientes formatos: i) enteros con signo, ii) com-plemento al dos, iii) complemento al uno, iv) exceso-127 y v) exceso-128.Elija uno de los tres primeros y uno de los dos excesos. Describa la conver-sión de números entre los dos formatos elegidos, en ambos sentidos.
Ejercicio 6. A veces hace falta convertir números de 32 bits en números de64 bits con su mismo valor.Si el número original está representado en complemento al dos o en com-plemento al uno y es negativo. ¿Como hay que completar los bits por la
Enrique R. AznarDpto. de Álgebra
Página web personal
Página de Abertura
Contenido
JJ II
J I
Página 35 de 41
Atrás
Pantalla grande/pequeña
Cerrar
izquierda?.Si además el número tiene parte fraccionaria y el punto decimal esta centra-do. ¿Como hay que completar los bits por la derecha?.
Ejercicio 7. Si un número real se representa sin signo, con punto decimal,y en base dos. Correr la coma o el punto un lugar a la derecha equivalea dividir por dos. Mientras que correrla un lugar a la izquierda equivale amultiplicar por dos. Justifica o demuestra esa afirmación¿Hay alguna regla análoga para complemento al dos o complemento aluno?.
Ejercicio 8. Halla el mayor natural n tal que n! puede representarse resspecx-tivamente en los siguientes formatos.
• entero de 32 bits en complemento al dos.• en coma flotante de 32 bits.
Ejercicio 9. En función del número de bits de su DNI, defina un sistemade numeración logarítmico. Diga cual es el rango de los exponentes que sepueden representar con ese número de bits y el rango correspondiente denúmeros representados. ¿ Cuál es su ulp ?. Calcule el número representadoen ese sistema por la sucesión de bits de su DNI.
Ejercicio 10. Programe o describa una función para convertir números alsistema de numeración residual RN S(8 | 7 | 11 | 13 | 15).
Enrique R. AznarDpto. de Álgebra
Página web personal
Página de Abertura
Contenido
JJ II
J I
Página 36 de 41
Atrás
Pantalla grande/pequeña
Cerrar
Represente el número d1d2d3d4d54 en el sistema de numeración residualRN S(8 | 7 | 11 | 13 | 15).
6. BIBLIOGRAFÍA
[1] Parhami B. Computer arithmetic. Algorithmic and hardware design, Oxford UniversityPress, U.K., 2000.
[2] Arndt J. Algorithms for programmers, fxtbook draft, hhttp://www.jjj.de/fxt/, versión del14 de marzo de 2007.
7. TEST DE REPASO.
Para comenzar el cuestionario pulsa el botón de inicio.Cuando termines pulsa el botón de finalizar.Para marcar una respuesta coloca el ratón en la letra correspondiente y pulsael botón de la izquierda (del ratón).
1. ¿Cuál de las siguientes afirmaciones es verdadera?.(a) El sistema decimal es un sistema posicional pero el octal no.
4es el número decimal formado por sus 5 primeros dígitos de su DNI.
Enrique R. AznarDpto. de Álgebra
Página web personal
Página de Abertura
Contenido
JJ II
J I
Página 37 de 41
Atrás
Pantalla grande/pequeña
Cerrar
(b) El sistema binario, el sistema decimal y el octal son posicionales peorel hexadecimal no.
(c) Todos los sistemas de numeración son posicionales.(d) Los sistemas binario, octal, decimal y hexadecimal son posicionales
pero el residual no.
2. ¿Cuál de las siguientes afirmaciones es verdadera?.(a) Un sistema posicional de raíz fija r sólo puede usar los dígitos enteros
del rango [0,r −1].(b) Un sistema posicional de raíz fija 3 puede usar los dígitos {0,1,2} o
bien {−1,0,1}. Pero ningún otro conjunto de dígitos.(c) Un sistema posicional de raíz fija 2 puede usar como dígitos dos en-
teros cualesquiera {a,b} siempre que uno sea par y el otro impar.(d) Un sistema posicional de raíz fija r puede usar cualquier conjunto de
dígitos siempre que sea de tamaño r .
3. ¿Cuál de las siguientes afirmaciones es verdadera?.(a) Para medir ángulos se suele usar un sistema posicional de raíz mixta
pero para medir tiempo no.(b) Tradicionalmente, se han usado sistemas posicionales de raíz mixta
para medir peso, distancias, áreas, ángulos, tiempo etc.
Enrique R. AznarDpto. de Álgebra
Página web personal
Página de Abertura
Contenido
JJ II
J I
Página 38 de 41
Atrás
Pantalla grande/pequeña
Cerrar
(c) Los sistemas posicionales de raíz mixta no pueden tener punto fijo. Osea, no sirven para medir fracciones.
(d) Hoy día todos los sistemas son posicionales de raíz fija.
4. ¿Cuál de las siguientes afirmaciones es verdadera?.(a) ul p es el mayor número real, estricto positivo, que puede represen-
tarse con un vector de k + l dígitos.(b) En un sistema de punto fijo sólo se pueden representar números reales
positivos.(c) En un sistema de punto fijo se pueden representar todos los números
reales del entorno [0,max](d) ul p sirve para definir la progresión geométrica de los números reales
representados.
5. ¿Cuál de las siguientes afirmaciones es verdadera?.(a) Los enteros con signo se representan con el convenio de que el bit
más significativo activado significa negativo.(b) En la representación de los enteros con signo en [−r k−1,r k−1], el cero
tiene representación única.(c) En la representación con sesgo, el cero tiene dos representaciones.(d) La representación con sesgo del cero depende del intervalo.
Enrique R. AznarDpto. de Álgebra
Página web personal
Página de Abertura
Contenido
JJ II
J I
Página 39 de 41
Atrás
Pantalla grande/pequeña
Cerrar
6. ¿Cuál de las siguientes afirmaciones es verdadera?.(a) La representación exceso-127 es una representación complementada
con constante M = 127.(b) En una representación complementada, para los enteros pertenecientes
al rango [−N ,+P ], siempre se elige la constante de complementacióntal que
N + P + 1 < M
(c) En una representación complementada, para números reales en el ran-go [−N ,+P ], se suele elegir la constante de complementación tal que
N + P + ul p = M
(d) La representación con sesgo utiliza constante M pero la complemen-tada no.
7. ¿Cuál de las siguientes afirmaciones es verdadera?.(a) En complemento al dos, con k bits, sólo se representan números del
rango [−2k−1,2k−1 −ul p].(b) Para calcular el opuesto de un número binario, en el sistema de com-
plemento al dos, primero se complementa bit a bit y luego se sumaul p.
(c) Con k bits, en el sistema de complemento al dos, la constante decomplementación es 2k−1.
Enrique R. AznarDpto. de Álgebra
Página web personal
Página de Abertura
Contenido
JJ II
J I
Página 40 de 41
Atrás
Pantalla grande/pequeña
Cerrar
(d) En complemento al dos, con constante M = 22 = 100, no se puede re-presentar el rango discreto de números reales binarios [−10.00, +1.11].
8. ¿Cuál de las siguientes afirmaciones es verdadera?.(a) En complemento al uno, con k bits, sólo se representan números del
rango [−(2k−1 −ul p),2k−1 −ul p].(b) Para calcular el opuesto de un número binario, en el sistema de com-
plemento al uno, se complementa bit a bit.(c) Con k bits, en el sistema de complemento al uno, la constante de
complementación es 2k .(d) En complemento al uno, con constante M = 22 = 100, no se puede re-
presentar el rango discreto de números reales binarios [−10.00, +1.11].
9. ¿Cuál de las siguientes afirmaciones es verdadera?.(a) La codificación de un número en coma flotante requiere escribir el bit
oculto en el bit más significativo.(b) El signo del exponente de un número en coma flotante se escribe en
el bit más significativo.(c) En sistema de coma flotante, el exponente siempre se codifica con
sesgo, bi as = 127.(d) La norma IEEE/ANSI Standard 754, es para números en coma flotante
de 32 o 64 bits.
Enrique R. AznarDpto. de Álgebra
Página web personal
Página de Abertura
Contenido
JJ II
J I
Página 41 de 41
Atrás
Pantalla grande/pequeña
Cerrar
10. ¿Cuál de las siguientes afirmaciones es verdadera?.(a) La representación logarítmica de un número, consiste en una repre-
sentación de coma flotante donde no hay significante.(b) La representación logarítmica de un número, consiste en una repre-
sentación de coma flotante donde sólo hay exponente y es positivo.(c) Con la representación logarítmica podemos representar algunos números
reales positivos o negativos.(d) En un sistema de representación residual, no importa el orden de los
módulos. Las cifras son las mismas escritas en otro orden.