computacion (l

Anuncio
Cátedra de COMPUTACION
Carreras: Licenciatura en Matemática – Profesorado en Matemática
Profesora: Mgr. María del Carmen Varaldo
APUNTES DE CATEDRA: SISTEMAS DE NUMERACION - REPRESENTACION
INTERNA DE NUMEROS Y CARACTERES
Queremos conocer cómo se almacenan los datos, las instrucciones de un programa, etc. en la
memoria de una computadora. Para ello es necesario considerar algunas formas alternativas de
representar números.
SISTEMAS DE NUMERACIÓN
Nosotros utilizamos el sistema decimal para representar números a partir de los 10 dígitos: 0, 1, 2,
3, 4, 5, 6, 7, 8 y 9 y sus posiciones dentro del número.
65
V.A. 6
V.R. 6 decenas
V.A. 5
V.R. 5 unidades
Estas ideas pueden generalizarse. Podemos construir otros sistemas de numeración:
- Binario:
se basa en dos dígitos (0 y 1)
- Octal :
se basa en ocho dígitos (0,1,2,3,4,5,6 y 7)
- Hexadecimal : se basa en dieciséis dígitos (0,1,2,3,4,5,6,7,8,9,A,B,C,D,E y F)
Estos sistemas reciben, en general, el nombre de sistemas de numeración posicionales, es decir son
sistemas de numeración en los que la interpretación de un dígito en particular depende tanto del
valor absoluto del dígito como de su posición en el número (valor relativo).
Si se representa un número mediante la siguiente cadena de dígitos dn dn-1 ... d1 d0 entonces su valor
será:
dn rn + dn-1 rn-1 + ... + d1 r + d0
donde r representa la base o raíz del sistema de numeración.
En el cuadro de la página siguiente, se establece una equivalencia entre distintos sistemas de
numeración. Observemos que la base tiene la misma representación, 10, en todos los sistemas.
Ejemplo 1: Convertir 10112 a su representación decimal.
10112 = 1 x 23 + 0 x 22 + 1 x 2 + 1 = 1110
Ejemplo 2: Convertir 2038 a su representación decimal.
2038 = 2 x 82 + 0 x 8 + 3 = 13110
Apunte: Sist. de numeración - Pág. 1 de 6
DECIMAL
(r = 10)
BINARIO
(r = 2)
OCTAL
(r = 8)
HEXADECIMAL
(r = 16)
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
10000
00
01
02
03
04
05
06
07
10
11
12
13
14
15
16
17
20
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
10
Los sistemas de numeración que hemos visto son de interés para la representación de información
interna de una computadora.
Se comete menos error si se logra representar dos estados (0 y 1) en el interior de una computadora
que si se quiere distinguir diez estados diferentes.
Por ello se ha elegido la representación binaria para codificar toda la información que almacena
una computadora.
Nuestro problema es, por lo tanto, dado un número decimal M10, encontrar todos los dígitos di,
0 i n , de la siguiente expresión :
(1)
M10 = dn 2n + dn-1 2n-1 + ... + d1 2 + d0
= 2 ( dn 2n-1 + dn-1 2n-2 + ... + d1 ) + d0
donde d0 es el resto que se obtiene al dividir M por 2.
M10 = 2[2 ( dn 2n-2 + dn-1 2n-3 + ... + d2 ) + d1] + d0
donde d1 es el resto de la división por 2 de la expresión encerrada entre corchetes.
Así es posible hallar todos los dígitos binarios que buscamos, de derecha a izquierda, dividiendo
por 2, sucesivas veces, el número decimal y recolectando la secuencia de restos.
Ejemplo 3: Convertir 2910 a binario
29/2 = 14 resto 1
14/2 = 7 resto 0
7/2 = 3 resto 1
3/2 = 1 resto 1
1/2 = 0 resto 1
2910 = 111012
De hecho podemos generalizar la ecuación (1) en la forma:
(2)
MB = dn rn + dn-1 rn-1 + ... + d1 r + d0
Apunte: Sist. de numeración - Pág. 2 de 6
donde B representa la base del número original y r la de la nueva representación. La conversión se
realiza haciendo divisiones sucesivas por r, aplicando la aritmética en base B y almacenando los
restos.
Los sistemas octal y hexadecimal se utilizan para escribir instrucciones en un lenguaje
ensamblador, para especificar direcciones de memoria, etc.
REPRESENTACION DE LA INFORMACION EN UNA COMPUTADORA
Unidad básica: BIT (analogía electrónica al dígito binario)
"OFF"
0
"ON"
1
Los bits se agrupan para poder representar información codificada
8 bits
BYTE
Grupo de bytes
PALABRA (word)
Enteros sin signo:
Imaginemos que representamos un entero como binario en una computadora, que utiliza 16 bits
para almacenar dicho valor.
Ejemplos:
710 se representa así
0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1
63210 se representa así
0 0 0 0 0 0 1 0 0 1 1 1 1 0 0 0
Con 1 bit representamos dos números (0 y 1)
Con 2 bits representamos cuatro números (00, 01, 10, 11)
.
.
.
Con m bits representamos 2m números enteros no negativos (0, 1, 2, ... , 2m-1) .
Enteros con signo:
¿Cómo podemos representar en binario los números negativos?
a) Representación en magnitud y signo:
Supongamos que se está trabajando con una computadora que tiene una configuración de m bits
para almacenar números.
Consideremos al bit de mayor peso (es decir, el que se ubica más a la izquierda) como bit de signo.
Por convenio vale:
0
signo positivo
1
signo negativo
En esta representación llamada representación en magnitud y signo, los restantes (m-1) bits se
utilizan para simbolizar los enteros en su forma binaria.
Ejemplos:
2910 se representa como:
Apunte: Sist. de numeración - Pág. 3 de 6
0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 1
-2910 se representa como:
1 0 0 0 0 0 0 0 0 0 0 1 1 1 0 1
Utilizando este sistema, el rango de números enteros z, representables con palabras de m bits, es
- (2m-1 - 1) z
( 2m-1 - 1),
pero se presenta un inconveniente: la representación del 0 no es única. Por ejemplo, para
m = 4 tenemos:
0
0000
-0
1000
Aunque matemáticamente 0 y -0 es lo mismo, el método de representación en magnitud y signo nos
conduce a dos representaciones distintas de la misma entidad, el 0. Por esta razón, ya que
complicaría el diseño de los circuitos de las computadoras, no se utiliza este método para
representar los enteros.
b) Representación en complemento a dos:
Ésta es una alternativa para resolver el problema presentado antes.
Los enteros positivos se representan igual que los enteros sin signo. Ahora vamos a convenir que
los números que empiecen con 0 los interpretamos como positivos y los que empiecen con 1, como
negativos.
Si trabajamos en una configuración de m bits para representar los enteros podemos deducir que el
rango para los enteros positivos es:
de
00.....0
a
m ceros
o sea
0
z
01.....1
(m-1) unos
2m-1 - 1.
En cambio, para representar los enteros negativos nos quedan los valores binarios
de
10.....0
a
(m – 1) ceros
11.....1
m unos
¿Qué relación podemos establecer entre este rango y los enteros negativos?
1. El rango anterior, en base 10, lo podemos escribir de 2m-1 a
-2m-1
a
-1
2m-1
(A)
( 2m - 1)
b
2m-1
(B)
2. Supongamos que establecemos una correspondencia biunívoca entre el intervalo (A) de enteros
negativos y el (B). Por lo tanto, un entero a en (A) tendrá un valor correspondiente b en (B).
3.
Proponemos que la distancia entre 0 y a sea la misma que entre 2m y b. Es decir
Apunte: Sist. de numeración - Pág. 4 de 6
dist (0, a)
dist(2m , b)
2m - b
a
2m
b
2m - 1
a
1
a
2m - 1
a
1
Por lo tanto, adoptamos como representación b de un entero negativo a lo siguiente:
a
2m - 1
b
a
1
2
Entonces, en general, podemos describir la representación en complemento a dos como:
i) si
0
ii) si
- 2m-1
z
2m-1 - 1
z
z
z2 (representación binaria de z en m bits)
2m - 1
-z
-1
z
1
2
Por lo tanto, el rango de representación de números enteros en una configuración de m bits es:
- 2m-1 z
2m-1 - 1
Ejemplos:
1. Para m = 16, se tiene -215
z
215 - 1
- 32768
z
32767
2. z = +10 m = 8
Su representación binaria es
0 0 0 0 1
3. z = -10 m = 8
Su representación binaria es ( (28 - 1) + 1- 10 )2
28 - 1
-
0
1
0
1
1
0
11111111
-
10
00001010
11110101
+
+
1
1
11110110
1
1
1
1
0
En el ejemplo 3 vemos que (2m - 1)2 resulta ser una cadena de m unos.
La sustracción de cualquier número binario de otro que tiene todos sus bits iguales a 1 es sencilla.
Observemos que 1 - 0 = 1 y 1 - 1 = 0. Es decir, (2m - 1)2 - │z│2 se obtiene cambiando todos los
unos por ceros y los ceros por unos en │z│2 .
La operación de "invertir" los bits de un número binario se llama cálculo de complemento a uno.
Podemos deducir, entonces, que el complemento a dos de un número binario se calcula sumando 1
al complemento a uno del mismo.
Volviendo al ejemplo 3:
z
(28 - 1)2 - │z│2+ 1
donde │z│2 = 1010
Cálculo práctico:
 escribir el │z│ en binario 00001010
Apunte: Sist. de numeración - Pág. 5 de 6
 aplicar complemento a uno
 sumar 1, según aritmética binaria
11110101
11110110
Por último, veamos qué pasa con la representación en complemento a dos para el 0.
+0
00....0
m ceros
-0
0....00
1....11
+
0....01
escribimos el 0 en base 2
aplicamos complemento a uno
sumamos 1, según aritmética binaria
10....00
se ignora
En ambos casos quedan m ceros y por lo tanto, la representación es única.
En las computadoras que trabajan en complemento a dos, no es necesario construir un circuito
restador separado del sumador. La resta puede realizarse complementando al sustraendo y
sumándoselo al minuendo. En cambio, en el sistema de magnitud y signo, sería necesario un
circuito restador.
REPRESENTACIÓN DE NÚMEROS CON PUNTO FLOTANTE (reales)
Hemos visto cómo representar enteros, pero en la mayoría de los problemas prácticos necesitamos
trabajar con los números reales, como 45,89 ó 865 x 10-5.
Uno de los inconvenientes que se presenta al realizar ciertos cálculos es seguir la pista a la coma
decimal. Ante problemas de cierta complejidad que requieren números reales de magnitudes muy
diferentes, se hace necesario normalizar la representación de los números y disponer de algún
sistema automático que garantice la posición correcta de la coma (o punto) después de cada
operación.
Uno de estos sistemas es la notación de punto flotante.
Ejemplos:
56.234
3902
0.07
-29.50
= 0.56234 x 102
= 0.3902 x 104
= 0.7 x 10-3
= - 0.295 x 102
En general, todo número real puede escribirse como:
0.a E b
o bien
0.a x 10b
Luego, para su representación sólo necesitamos dos números enteros a y b .
Se utiliza una notación que permita trabajar cualquier magnitud con la misma cantidad de cifras
significativas.
Internamente, a y b se representan utilizando números binarios ( a x 2b ) y según con qué tipo de
aritmética se trabaje (precisión standard o extendida) variará la cantidad de cifras significativas
para a (7,9,etc.) .
Bibliografía:
A. Tucker et al. , “Fundamentos de Informática: Lógica, resolución de problemas, programas y
computadores”, McGraw-Hill, 1994.
Apunte: Sist. de numeración - Pág. 6 de 6
Descargar