MÓDULO 1 SISTEMAS DE NUMERACIÓN. ¿Cómo se representan

Enrique R. Aznar
Dpto. de Álgebra
MÓDULO 1
SISTEMAS DE NUMERACIÓN.
¿Cómo se representan los números?
Página web personal
Página de Abertura
1.
Introducción.
Definición 1.
Definición 2.
Definición 3.
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.
Lema 1.
Ejemplo 1.
Ejemplo 2.
2.2. Enteros sin signo.
Definición 5.
Lema 2.
Ejemplo 3.
5
6
6
6
7
7
7
8
9
9
9
10
10
10
Contenido
Página 1 de 41
Atrás
Pantalla grande/pequeña
Cerrar
Definición 6.
Enteros con signo.
Definición 7.
Ejemplo 4.
2.4. Enteros con sesgo.
Definición 8.
Ejemplo 5.
Lema 3.
2.5. Enteros con signo complementados.
Definición 9.
Lema 4.
Ejemplo 6.
Definición 10.
2.6. Complemento al dos.
Ejemplo 7.
Definición 11.
Lema 5.
Ejemplo 8.
Lema 6.
2.7. Complemento al uno.
Ejemplo 9.
3. Representación de números reales.
Ejemplo 10.
2.3.
10
11
11
11
12
12
13
13
14
14
15
16
17
17
18
18
19
19
20
21
21
22
23
Enrique R. Aznar
Dpto. de Álgebra
Página web personal
Página de Abertura
Contenido
Página 2 de 41
Atrás
Pantalla grande/pequeña
Cerrar
3.1.
Números en coma flotante.
Ejemplo 11.
Definición 12.
Definición 13.
Definición 14.
3.2. Sistemas logarítmicos.
Definición 15.
Ejemplo 12.
Ejemplo 13.
4. Sistemas de numeración residuales.
Definición 16.
Ejemplo 14.
5. Ejercicios.
Ejercicio 1.
Ejercicio 2.
Ejercicio 3.
Ejercicio 4.
Ejercicio 5.
Ejercicio 6.
Ejercicio 7.
Ejercicio 8.
Ejercicio 9.
Ejercicio 10.
24
24
25
26
27
28
28
28
29
30
31
31
33
33
33
34
34
34
34
35
35
35
35
Enrique R. Aznar
Dpto. de Álgebra
Página web personal
Página de Abertura
Contenido
Página 3 de 41
Atrás
Pantalla grande/pequeña
Cerrar
6.
7.
Bibliografía
Test de repaso.
36
36
Enrique R. Aznar
Dpto. de Álgebra
Página web personal
Página de Abertura
Contenido
Página 4 de 41
Atrás
Pantalla grande/pequeña
Cerrar
1.
I NTRODUCCIÓN .
Enrique R. Aznar
Dpto. de Álgebra
Los sistemas de representación de números han avanzado en paralelo con la
evolución del lenguaje.
El más antiguo método de representación consiste en el uso de piedras o
palillos. Gradualmente, conforme números mayores eran usados, este sistema 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 este
proceso lo constituye el sistema de numeración romana que consistía en
usar los símbolos
Página web personal
Página de Abertura
Contenido
I , V, X , L, C , D, M , ((I )), (((I )))
para representar grupos de
Página 5 de 41
1, 5, 10, 50, 100, 500, 1000, 10000, 100000
Atrás
respectivamente.
Sin embargo, el sistema romano no es conveniente ni para representar grandes
números ni para hacer aritmética.
Pantalla grande/pequeña
El primer sistema que se usó para simplificar la aritmética lo introdujeron los
chinos y era de tipo posicional.
Cerrar
Definición 1. Se llama sistema posicional de representación de números
aquel en que el valor de un símbolo, no sólo depende del mismo, sino también de la posición que ocupa entre los demás.
En un sistema posicional, la unidad correspondiente, en cada posición, puede
ser 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 numeración.
Enrique R. Aznar
Dpto. de Álgebra
Página web personal
Casi todos los sistemas modernos son de este tipo. Por ejemplo,
Definición 2. El sistema decimal es un sistema posicional que usa como
constante 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, un
ejemplo de
Definición 3. Un sistema posicional de raíz mixta es un sistema posicional
donde 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 segundos
se usa el vector
24, 60, 60, 1
Página de Abertura
Contenido
Página 6 de 41
Atrás
Pantalla grande/pequeña
Cerrar
Los sistemas posicionales de raíz mixta tienen algoritmos complejos para su
aritmética. Mientras que de raíz o base fija son bastante más sencillos.
Enrique R. Aznar
Dpto. de Álgebra
La popularidad de estos últimos se basa en la existencia de algortimos simples y elegantes para todas las operaciones aritméticas.
2.
2.1.
S ISTEMAS DE NUMERACIÓN POSICIONAL CON RAÍZ O BASE FIJA .
Números reales sin signo, con punto decimal fijo.
Definición 4. Un sistema de numeración posicional con base fija está basada 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 x
positivo, por un vector de dígitos de longitud k +l , donde los k primeros dígitos representan la parte entera del número x y los l siguientes representan
la parte fraccionaria.
De forma que la sucesión o vector de dígitos
x k−1 x k−2 · · · x 1 x 0 .x −1 x −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.
Página web personal
Página de Abertura
Contenido
Página 7 de 41
Atrás
Pantalla grande/pequeña
Cerrar
Enrique R. Aznar
Dpto. de Álgebra
representa el número real
k−1
x=
xi r i
i =−l
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 · · · 1
Con 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 representarse
corresponde a la sucesión de dígitos
Página web personal
Página de Abertura
Contenido
r − 1 · · · r − 1.r − 1 · · · r − 1
Como se comprueba sumando ul p = r −l = 0,0 · · · 1, corresponde a la representació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 los
nú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
Página 8 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 los
nú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
Enrique R. Aznar
Dpto. de Álgebra
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 de
dígitos el rango de enteros [0, r − 1] también tiene sentido.
x i (−r )i =
x = (x k−1 x k−2 · · · x 1 x 0 .x −1 x −2 · · · x −l )−r =
Página web personal
Página de Abertura
i
xi r i −
=
i par
xi r i
Contenido
i impar
El sistema negabinario se define como el sistema posicional que usa como
constante multiplicativa el −2 y los bits 0 y 1.
Los números naturales 0, 1, 2, . . . pueden ser representados como números
reales con punto decimal fijo sin parte fraccionaria, o sea con l = 0 o equivalentemente ul p = r 0 = 1.
Página 9 de 41
Atrás
Pantalla grande/pequeña
2.2. Enteros sin signo. Esta representación de los números enteros positivos o naturales es llamada en inglés unsigned integers.
Constituyen un tipo de dato básico o primitivo, en casi todos los lenguajes
de programación.
Cerrar
Definición 5. Para raíz r , un natural n que se represente con k cifras será
Enrique R. Aznar
Dpto. de Álgebra
n = a k−1 r k−1 + · · · + a 0
Claramente, con k dígitos, uno pueden representar todos los números naturales 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
Página web personal
Lema 2. Un natural, n , necesita para representarse como máximo
Página de Abertura
k = max = logr n + 1 = logr (n + 1)
Ejemplo 3. Con números binarios, con 4 bits, podemos representar biyectívamente todos los números enteros en el intervalo [0, 15] por
Contenido
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 implementada en hardware. Casi todos los sistemas operativos acceden a ellos a
través de registros e instrucciones de código máquina2.
Definición 6. Se produce desbordamiento (overflow) cuando el resultado
tiene más de k dígitos. En cuyo caso, no se consideran los dígitos (bits para
r = 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.
Página 10 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ética
modular, módulo3 r k . Como son positivos, la resta sólo tiene sentido cuando
el sustraendo es menor que el minuendo.
Enrique R. Aznar
Dpto. de Álgebra
Sin embargo, es posible manejar también los enteros negativos.
2.3. Enteros con signo. La representación de los números enteros positivos y negativos es llamada en inglés signed integers.
Para representar enteros negativos se introduce la representación donde se
reserva el dígito (bit para r = 2), más siginificativo para el signo, con el
convenio siguiente.
Página web personal
Página de Abertura
Contenido
Definición 7. Si el bit más significativo es 1 (bit activado) representa un
número negativo y 0 (bit desactivado) uno positivo.
Así, se consiguen representar todos los enteros en el rango [−r k−1 , r k−1 ] con
el inconveniente de que el cero tiene dos representaciones +0 y −0.
O sea,
0 · · · 0 = 0 = 10 · · · 0
Ejemplo 4. Con 4 bits, los enteros con signo que podemos representar (no
biyectí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
Página 11 de 41
Atrás
Pantalla grande/pequeña
Cerrar
0000 = 0 = 1000,
Enrique R. Aznar
Dpto. de Álgebra
1001 = −1, 1010 = −2, . . . , 1101 = −5, 1110 = −6, 1111 = −7
Las ventajas de esta representación incluyen su apariencia intuitiva, simplicidad conceptual, rango simétrico y sobre todo la simple negación que consiste
en 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 mismo
signo. Por todo lo anterior, esta representación no es muy utilizada.
Página web personal
Página de Abertura
Contenido
2.4. Enteros con sesgo. Esta representación de los números naturales es
llamada en inglés biased representation.
Página 12 de 41
Una manera de representar enteros con signo sin que halla una doble representación del cero consiste en sumar (sesgar) al entero inicial una cantidad
fija llamada bias tal que trasforme el rango [−bi as, max −bi as] en el rango
[0, max].
Atrás
Pantalla grande/pequeña
Cerrar
Definición 8. Esta representación es llamada exceso-bias cuando se suma
la cantidad bias, por ejemplo en inglés excess-3 cuando se suma 3 o excess128 coding cuando se suma 128.
k−1
En una representación con k -bits, tomando bi as = 2 , se consigue que
el bit más significativo indique el signo del entero representado. Aunque la
regla es la contraria de la usual.
Enrique R. Aznar
Dpto. de Álgebra
Cuando este bit está activado (vale 1) representa un número positivo y cuando está desactivado (vale 0) representa un número negativo. Además, para
base 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 , podemos
representar biyectívamente todos los números enteros en el intervalo [−8, 7]
por
Página web personal
0001 = −7, 0010 = −6, . . . , 0101 = −3, 0110 = −2, 0111 = −1,
Contenido
Página de Abertura
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 considerando las igualdades inmediatas:
Página 13 de 41
Atrás
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 as
consiste en complementar el bit más significativo. Por tanto, en este caso la
suma y la resta se implementan muy fácilmente.
Pantalla grande/pequeña
Cerrar
Sin embargo, la implementación de la multiplicación y división son más
complicadas que en otras representaciones.
Enrique R. Aznar
Dpto. de Álgebra
Por esta razón, la representación con sesgo se suele limitar a la parte del
exponente de la representación de un número en coma flotante, ya que en
este caso, sólo necesitan sumarse o restarse.
2.5.
Enteros con signo complementados.
Definición 9. En esta representación (complement representation), se elige
una constante de complementación suficientemente grande M , tal que un
entero negativo x se represente por la cantidad positiva M + x .
Página web personal
Página de Abertura
Contenido
La diferencia, con la representación con sesgo, es no se la sumamos a los
enteros positivos originales que se quedan tal cuál.
Por tanto, para representar enteros pertenecientes al rango [−N , +P ], la constante M se elige tal que
Página 14 de 41
Atrás
N +P +1 ≤ M
de esta forma se consigue que no haya solapamiento. Esto es, que la representación sea única para enteros en el rango dado.
Además, tomando
M = N +P +1
Pantalla grande/pequeña
Cerrar
se consigue un rango transformado discreto sin huecos desde 0 hasta
Enrique R. Aznar
Dpto. de Álgebra
M −1 = N +P
De forma que los negativos, [−N , −1], se transforman biyectivamente en el
rango positivo, [P + 1, N + P ], invirtiendo el orden.
Esto es, el rango inicial de números enteros [−N , +P ] se transforma biunívocamente 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 a
sumar −1). Así, tenemos
Página web personal
Página de Abertura
Contenido
Lema 4. La suma o resta de los enteros originales módulo M coincide con
la suma módular en el rango transformado.
En la aritmética modular, el resultado no se desborda. En este caso, la resta
puede ser realizada complementando el sustraendo y sumando en el rango
transformado.
O sea, la suma y la resta son esencialmente la misma operación. Esta es la
principal ventaja de la representación complementada.
Página 15 de 41
Atrás
Pantalla grande/pequeña
Cerrar
Esta representación también tiene sentido para números reales (positivos o
negativos) con punto decimal fijo. Todos los números se representan con k +l
dígitos (k dígitos enteros y l fraccionarios).
En este caso, los números reales que se representan van de ul p = r
en vez de ser números enteros e ir de uno en uno.
−l
en ul p
Enrique R. Aznar
Dpto. de Álgebra
Además, para representar el rango [−N , +P ], la menor constante que suele
tomarse 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]
Página web personal
Página de Abertura
que van de 0,001 en 0,001, tomamos la constante
Contenido
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
Página 16 de 41
Atrás
−3
Pantalla grande/pequeña
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.
Cerrar
En la representación de este ejemplo, observamos que las operaciones auxiliares necesarias para sumar o restar consisten en la complementación o
sumar M = 12 y en la división módulo M = 12.
Enrique R. Aznar
Dpto. de Álgebra
Ambas operaciones en general son más costosas que la suma o resta de
números reales en el rango original. Lo que es una desventaja.
Para simplificar y evitar este inconveniente se suelen elegir las siguientes dos
constantes
M =r
Página web personal
k
Página de Abertura
o bién
M = r k − ul p = r k − r −l
Contenido
Definición 10. Las llamamos respectivamente complemento a la raíz, que
en base r = 2 se llama complemento al dos y complemento a la raíz disminuí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 de
complemento 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
Página 17 de 41
Atrás
Pantalla grande/pequeña
Cerrar
Aunque, puede ser otro rango cualquiera [−N , +P ] verificando
Enrique R. Aznar
Dpto. de Álgebra
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 complementación M = 22 = 100, ya que
N + P + ul p = 11,00 + 0,11 + 0,01 = 100,00 = 22
Página web personal
Página de Abertura
Contenido
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.
Página 18 de 41
La ventaja de esta representación de complemento al dos es que el cálculo
del complemento de un número es muy sencilla basta complementar cada bit
y luego sumar ul p . Ya que
Pantalla grande/pequeña
2k − x = [(2k − ul p) − x] + ul p = x compl + ul p
Cerrar
donde si x es un número escrito en binario
Definición 11. x compl consiste en complementar cada bit de x .
Atrás
y hemos aplicado el siguiente lema inmediato.
Enrique R. Aznar
Dpto. de Álgebra
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 + x compl = 2k − ul p
Página web personal
Página de Abertura
En el ejemplo anterior
Contenido
2
2 −x = x
compl
+ 0,01
k
Además, la reducción módulo M = 2 (en nuestro ejemplo M = 22 = 100) se
hace 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 de
complementación M = 24 = 10000. Podemos representar el rango
Página 19 de 41
Atrás
[−8, +7] = [−1000, +0111]
Pantalla grande/pequeña
ya que
N + P + ul p = 8 + 7 + 1 = 16 = 24 = M
biunívocamente en el rango
[0, N + P ] = [0, 24 − 1] = [0, 15] = [0000, 1111]
Cerrar
que son todos los números naturales que se pueden escribir con 4 bits.
Enrique R. Aznar
Dpto. de Álgebra
La representación de complemento al dos tiene la ventaja de que se puede
detectar fácilmente si un número representado es negativo.
Basta mirar su dígito más significativo, si está activado (vale 1) es negativo
y 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 representa al 15 − 16 = −1.
Nótese que, el 1 = 0001 es el complemento al dos del 1111:
Página web personal
Página de Abertura
Contenido
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 = (x k−1 x k−2 · · · x 1 x 0 .x −1 · · · x −l )2
Entonces, el valor decimal del número representado es
x = −x k−1 2k−1 +
k−2
i =−l
x i 2i
Página 20 de 41
Atrás
Pantalla grande/pequeña
Cerrar
Demostración: Si el dígito significativo es x k−1 = 0 el número es positivo y
la igualdad del lema es inmediata.
Enrique R. Aznar
Dpto. de Álgebra
Si x k−1 = 1, el número es negativo y por definición se calcula así
x = −[2k − (1x k−2 )x k−2 · · · x 1 x 0 .x −1 · · · x −l )2 ] = −2k−1 +
k−2
x i 2i
i =−l
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 de
complemento al uno puede ser
Página web personal
Página de Abertura
Contenido
[−(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
Página 21 de 41
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]
Atrás
Pantalla grande/pequeña
Cerrar
Enrique R. Aznar
Dpto. de Álgebra
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 representaciones 0 y también 15 = 1111 que representaría al −0.
Este es un inconveniente. Aunque esta representación tiene algunas ventajas
en su implematación hardware, hoy día es inusual.
Página web personal
Página de Abertura
Contenido
Observaremos, que el complemento al uno de un número x se calcula simplemente complementando cada bit, ya que por el lema 5
(2k − ul p) − x = x compl
Página 22 de 41
Atrás
3.
R EPRESENTACIÓN DE NÚMEROS REALES .
Pantalla grande/pequeña
Claramente, ninguna representación finita es capaz de representar todos los
números reales, incluso dentro de un rango pequeño.
Así pues, la mayor parte de los números reales tendrán que ser representados
de una manera aproximada.
Cerrar
Varios métodos pueden ser usados: números con punto decimal fijo (vistos
anteriormente), números racionales (que consiste en aproximar un número
real por el cociente de dos enteros), sistema de numeración logarítmico (que
consiste en representar un número real por su signo y su logaritmo).
Enrique R. Aznar
Dpto. de Álgebra
Finalmente, el más utilizado que consiste en aproximar un número real por
un 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
Página web personal
Página de Abertura
Contenido
y = 1001 0000. 0000 00002
observaremos que aunque el más pequeño parece más propenso a tener algún error de redondeo, ninguno de sus cuadrados x 2 , y 2 son representables
en el sistema con punto decimal fijo, con k = 8 = l .
En el primer caso, x 2 produce un número demasiado pequeño (underflow)
mientras que y 2 produce uno demasiado grande (desbordamiento o overflow).
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
Página 23 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 como
máximo.
Enrique R. Aznar
Dpto. de Álgebra
Como el exponente positivo o negativo lo que indica es que el punto decimal
se mueva a derecha o izquierda, este sistema de representación se llama de
coma flotante.
Página web personal
3.1.
Números en coma flotante. Un número en coma flotante
x = ±s × b
Página de Abertura
E
Contenido
tiene cuatro componentes: el signo, el número significante s escrito con
punto decimal fijo (k=1), la base r = b que normalmente será dos o diez y el
exponente E que a su vez puede ser positivo o negativo.
Es generalmente aceptado que el exponente E se codifique como un entero
con sesgo (biased representation), esto es su signo está integrado en el exponente 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]
Página 24 de 41
Atrás
Pantalla grande/pequeña
Cerrar
Enrique R. Aznar
Dpto. de Álgebra
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 significativo
con el convenio usual de que 1 representa negativo y 0 positivo (al contrario
de la representación del exponente).
Como hemos visto en el ejemplo 10, se pueden tomar dos representaciones
en 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.
Página web personal
Página de Abertura
Contenido
Aunque la famosa norma IEEE/ANSI Standard 754, para la artimética en
coma 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 y
codificar sólo la parte fraccionaria del mismo.
En el ejemplo 10, sólo se codificarían los tres bits F = 001 que constituyen
su parte fraccionaria. Así,
Definición 12. Llamaremos fracción del número en coma flotante a la parte
fraccionaria del significante s ∈ [1, 2).
Diremos que la parte entera, 1, del significante constituye el bit oculto.
Página 25 de 41
Atrás
Pantalla grande/pequeña
Cerrar
Definición 13. La norma IEEE/ANSI Standard 754 establece rigurosamente
la codificación a adoptar según el tamaño de palabra del ordenador:
Enrique R. Aznar
Dpto. de Álgebra
• para 32 bits el primer bit por la izquierda (más significativo) da el
signo del número, los siguientes ocho bits dan el exponente codificado con bi as = 127 y los restantes 23 bits definen la fracción F del
significante que tiene siempre parte entera uno. O sea que
s = 1 + F /223 ∈ [1, 2)
Página web personal
Página de Abertura
Siendo el número x representado en coma flotante en una palabra
de 32 bits igual a
Contenido
x = ±(1 + F /223 ) × 2E −127
• para 64 bits el primer bit por la izquierda (más significativo) da el
signo del número, los siguientes once bits dan el exponente codificado con bi as = 1023 y los restantes 52 bits definen la fracción F del
significante 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 palabra
de 64 bits igual a
x = ±(1 + F /252 ) × 2E −1023
Página 26 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]
Enrique R. Aznar
Dpto. de Álgebra
[mi n, max]
donde
max = ma yor Si g ni f i c ant e × b ma yor E xponent e
mi n = menor Si g ni f i c ant e × b menor E xponent e
Página web personal
Existen por tanto cuatro regiones o intervalos de desbordamiento de números
que no se pueden aproximar con precisión que se clasifican en dos.
Página de Abertura
Definición 14. la región de desbordamiento por abajo (underflow) es
Contenido
(−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 ciertos
valores límite. Por ejemplo, para 64 bits son los siguientes

±0,0,



±2−1074 F,
±∞,



±N aN (F /252 ),
Cero Si E = F = 0;
Caso denormal Si E = 0 y F = 0;
Infinito Si E = 2047 y F = 0;
No un Número Si E = 2047 y F = 0.
Página 27 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 otra
para números en coma flotante.
Enrique R. Aznar
Dpto. de Álgebra
La razón es que la aritmética entera es más simple y más rápida que la de
coma flotante.
Además, con la arimética entera, por software se pueden implementar los enteros de precisión arbitraria, (mal) llamados a veces de precisión infinita.
La representación de punto fijo (fixed point) se puede considerar un caso
especial extremo de la representación de coma flotante (floating point) con
exponente igual a cero (haciendo éste innecesario).
Página web personal
Página de Abertura
Contenido
El otro caso extremo consiste en remover el significante, suponiendo que
vale uno. Entonces se obtiene la siguiente representación.
Página 28 de 41
3.2.
Sistemas logarítmicos.
Definición 15. La representación logarítmica de un número, consiste en una
representación de coma flotante donde el significante no tiene parte fraccionaria, siempre vale uno y es un dígito oculto.
Por ejemplo,
Atrás
Pantalla grande/pequeña
Cerrar
Ejemplo 12. Con 12 bits para exponente y en base dos, se puede definir un
sistema de numeración logarítmico reservando el bit más significativo para
el signo y de los 11 restantes, los cinco primeros junto con el de signo representa la parte entera del exponente en complemento al dos.
Enrique R. Aznar
Dpto. de Álgebra
Los seis restantes bits representan la parte fracionaria del exponente en complemento al dos.
Entonces,
Página web personal
ul p = 2−6 = 0,015625
Página de Abertura
y el rango del exponente es el intervalo discreto
Contenido
[−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 ]
−6
que forman una progresión geométrica de razón 22 = 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 decimal
en la mitad se calcula de la siguiente forma: Como el bit más significativo es
Página 29 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
Enrique R. Aznar
Dpto. de Álgebra
001001,110101
si se calcula su parte entera vale
23 + 1 = 9
Página web personal
y su parte fraccionaria vale
1 1 1
1
+ +
+
= 0,828125
2 4 16 64
Página de Abertura
Contenido
luego el exponente vale
−9,828125
y el número representado en consecuencia es
2−9,828125 = 0,00110012
Página 30 de 41
que claramente está dentro de la progresión geométrica anterior.
Atrás
4.
S ISTEMAS DE NUMERACIÓN RESIDUALES .
Por el teorema chino de los restos, dado un número entero que sea producto
de números primos entre si
M = m1 · · · mr
Pantalla grande/pequeña
Cerrar
existe un isomorfismo entre el grupo abeliano ZM y el producto directo
Enrique R. Aznar
Dpto. de Álgebra
Zm1 × · · · × Zmr
Como consecuencia, todo número entero positivo se puede representar por
sus 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 intervalo
semiabierto [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, dentro de un intervalo con M enteros consecutivos.
Por ejemplo, todos los números enteros positivos y negativos en el intervalo
[−
M
M
,
)
2
2
Definición 16. Denotamos por R N S(m1 |...|mr ) al sistema de numeración
residual correspondiente.
Página web personal
Página de Abertura
Contenido
Página 31 de 41
Atrás
Pantalla grande/pequeña
Ejemplo 14. Representa el número binario y = 10100100 en el sistema de
numeración residual R N S(8 | 7 | 5 | 3).
Como el primer módulo es una potencia de dos, 8 = 23 , el resto m´od 8 es
quedarnos con las tres últimas cifras en base dos.
Cerrar
Enrique R. Aznar
Dpto. de Álgebra
O sea,
y
m´od 8 = 10100100 m´od 23 = 100
en base dos. O sea, 4 en base 10.
Para las otras cifras se puede hacer una tabla look-up, que permita hacer
el 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 de
dos, correspondientes a sus bits activados,
Página web personal
y = 27 + 25 + 22
Página de Abertura
sus residuos o restos módulo 7, o bien 5, o bien 3, se pueden obtener de la
siguiente tabla de restos.
Contenido
j
1
2
3
4
5
6
7
8
9
2j
2
4
8
16
32
64
128
256
512
2 j Mod(7) 2 j Mod(5) 2 j Mod(3)
2
2
2
4
4
1
1
3
2
2
1
1
4
2
2
1
4
1
2
3
2
4
1
1
1
2
2
Página 32 de 41
Atrás
Pantalla grande/pequeña
Cerrar
Enrique R. Aznar
Dpto. de Álgebra
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ón
residual RN S(8 | 7 | 5 | 3) vale
y = (4 | 3 | 4 | 2)
Página web personal
Página de Abertura
5.
E JERCICIOS .
Contenido
Ejercicio 1. Dado un entero sin signo, x . Prueba
• x = (x k−1 · · · x 1 x 0 )3 es par si y sólo si k−1
i =0 x i es par.
• x = (x k−1 · · · x 1 x 0 )2 es divisible por 3 si y sólo si
xi −
i par
xi
i impar
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).
Página 33 de 41
Atrás
Pantalla grande/pequeña
Cerrar
¿Sabrías describir un método para pasar de base r a −r y viceversa?.
Enrique R. Aznar
Dpto. de Álgebra
Ejercicio 3. Calcule su DNI en binario, octal, hexadecimal y negahexadecimal.
Ejercicio 4. Si α es una sucesión de ceros y unos, denotamos por u(α) el
número entero, sin signo, que representa. Por s(α) el número entero con
signo. Por c1(α) el entero en el sistema complemento al uno y por c2(α) el
entero en complemento al dos.
Sea α su DNI en binario, con 26 bits, completado con ceros a la izquierda
su fuera necesario.
• ¿Representa α un entero con signo o sin signo?. ¿Y con 25 bits?. En
Página web personal
Página de Abertura
Contenido
caso 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 con
8-bits en cualquiera de los siguientes formatos: i) enteros con signo, ii) complemento 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 conversió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 de
64 bits con su mismo valor.
Si el número original está representado en complemento al dos o en complemento al uno y es negativo. ¿Como hay que completar los bits por la
Página 34 de 41
Atrás
Pantalla grande/pequeña
Cerrar
izquierda?.
Si además el número tiene parte fraccionaria y el punto decimal esta centrado. ¿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 equivale
a dividir por dos. Mientras que correrla un lugar a la izquierda equivale a
multiplicar por dos. Justifica o demuestra esa afirmación
¿Hay alguna regla análoga para complemento al dos o complemento al
uno?.
Ejercicio 8. Halla el mayor natural n tal que n! puede representarse resspecxtivamente en los siguientes formatos.
Enrique R. Aznar
Dpto. de Álgebra
Página web personal
Página de Abertura
Contenido
• entero de 32 bits en complemento al dos.
• en coma flotante de 32 bits.
Página 35 de 41
Ejercicio 9. En función del número de bits de su DNI, defina un sistema
de numeración logarítmico. Diga cual es el rango de los exponentes que se
pueden representar con ese número de bits y el rango correspondiente de
números representados. ¿ Cuál es su ulp ?. Calcule el número representado
en ese sistema por la sucesión de bits de su DNI.
Ejercicio 10. Programe o describa una función para convertir números al
sistema de numeración residual R N S(8 | 7 | 11 | 13 | 15).
Atrás
Pantalla grande/pequeña
Cerrar
4
Represente el número d 1d 2d 3d 4d 5 en el sistema de numeración residual
RN S(8 | 7 | 11 | 13 | 15).
6.
Enrique R. Aznar
Dpto. de Álgebra
B IBLIOGRAFÍA
[1] Parhami B. Computer arithmetic. Algorithmic and hardware design, Oxford University
Press, U.K., 2000.
[2] Arndt J. Algorithms for programmers, fxtbook draft, hhttp://www.jjj.de/fxt/, versión del
14 de marzo de 2007.
Página web personal
Página de Abertura
7.
T EST 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 pulsa
el botón de la izquierda (del ratón).
Contenido
Página 36 de 41
Atrás
Pantalla grande/pequeña
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.
Cerrar
(b) El sistema binario, el sistema decimal y el octal son posicionales peor
el 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 enteros 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. Aznar
Dpto. de Álgebra
Página web personal
Página de Abertura
Contenido
Página 37 de 41
Atrás
Pantalla grande/pequeña
Cerrar
(c) Los sistemas posicionales de raíz mixta no pueden tener punto fijo. O
sea, 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 representarse 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. Aznar
Dpto. de Álgebra
Página web personal
Página de Abertura
Contenido
Página 38 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ón
tal que
N + P + 1 < M
(c) En una representación complementada, para números reales en el rango [−N , +P ], se suele elegir la constante de complementación tal que
N + P + ul p = M
Enrique R. Aznar
Dpto. de Álgebra
Página web personal
Página de Abertura
Contenido
(d) La representación con sesgo utiliza constante M pero la complementada 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 complemento al dos, primero se complementa bit a bit y luego se suma
ul p .
(c) Con k bits, en el sistema de complemento al dos, la constante de
complementación es 2k−1 .
Página 39 de 41
Atrás
Pantalla grande/pequeña
Cerrar
2
(d) En complemento al dos, con constante M = 2 = 100, no se puede representar 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 complemento 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 representar 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. Aznar
Dpto. de Álgebra
Página web personal
Página de Abertura
Contenido
Página 40 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 representación de coma flotante donde no hay significante.
(b) La representación logarítmica de un número, consiste en una representació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.
Enrique R. Aznar
Dpto. de Álgebra
Página web personal
Página de Abertura
Contenido
Página 41 de 41
Atrás
Pantalla grande/pequeña
Cerrar