Apuntes de clase. - Departamento de Electrónica y Automática

Anuncio
Universidad Nacional de San Juan
Facultad de Ingeniería
Unidad III
Representación de la Información
Cátedra:
Computación I (ELO)
Informática I (BIO)
Departamento de Electrónica y Automatica
COMPUTACIÓN I (ELO) - INFORMÁTICA I (BIO)
Representación de la Información
INDICE
3
REPRESENTACION DE LA INFORMACION............................................................................................................. 2
3.1
3.1.1
3.1.2
3.1.3
3.1.4
3.2
3.2.1
3.3
3.3.1
3.4
3.4.1
3.4.2
3.4.3
SISTEMAS NUMÉRICOS. ............................................................................................................................................... 2
Sistema decimal. .................................................................................................................................................... 2
Sistema Binario Natural. ....................................................................................................................................... 3
Sistema numérico octal. ......................................................................................................................................... 6
Sistema numérico hexadecimal.............................................................................................................................. 7
CÓDIGO BCD. ............................................................................................................................................................. 9
Comparación entre BCD y binario........................................................................................................................ 9
CÓDIGOS ALFANUMÉRICOS. ...................................................................................................................................... 10
EL código ASCII. ................................................................................................................................................. 10
REPRESENTACIÓN DE NÚMEROS ................................................................................................................................ 11
Representación de números con signo................................................................................................................. 11
Simple precisión, doble precisión. ....................................................................................................................... 13
Representación Coma Fija y Coma Flotante....................................................................................................... 13
i
COMPUTACIÓN I (ELO) - INFORMÁTICA I (BIO)
Representación de la Información
UNIDAD III
3 REPRESENTACION DE LA INFORMACION
3.1 Sistemas Numéricos.
En la tecnología digital se utilizan muchos sistemas numéricos. Los más comunes son los
sistemas decimal, binario, octal y hexadecimal. El sistema decimal es sin duda el más conocido
por nosotros ya que es de uso cotidiano, si analizamos sus características podremos entender
mejor los otros sistemas.
3.1.1 Sistema decimal.
El sistema decimal se compone de 10 numerales o símbolos. Estos 10 símbolos son 0, 1, 2, 3,
4, 5, 6, 7, 8 y 9; al utilizar estos símbolos como dígitos de un número podemos expresar
cualquier cantidad. El sistema decimal, también conocido como sistema de base 10, ha surgido
en forma natural debido a que el ser humano tiene diez dedos. De hecho, la palabra "dígito"
significa dedo en latín.
El sistema decimal es un sistema posicional o también llamado de valor posicional, en el cual el
valor de un dígito depende de su posición. Por ejemplo, consideremos el número decimal 453.
Sabemos que el dígito 4 representa en realidad 4 centenas, el 5 representa 5 decenas y el 3,
tres unidades. En esencia, el 4 tiene el mayor valor de los tres dígitos; a éste se le conoce
como el dígito más significativo (MSD). El número 3 tiene el valor menor y se denomina dígito
menos significativo (LSD).
Figura 3-1 Valores de posición decimal como potencias de 10
Expresando lo anterior con mayor rigor, tenemos que las diversas posiciones relativas al punto
decimal tienen valores que se pueden expresar como potencias de 10. Esto se ilustra en la
Figura 3-1, donde se representa el número 2745,214. El punto decimal separa las potencias
positivas de 10 de las potencias negativas. Así pues el número 2745,214 es igual a:
(2*103 + 7*102 + 4*101 + 5*100 + 2*10-1 + 1*10-2 + 4*10-3)
En términos generales, cualquier número es simplemente la suma de los productos del dígito
por su valor posicional (peso). En el sistema decimal con dos dígitos decimales podemos
contar hasta 102 = 100 números diferentes (de 0 a 99). Con tres espacios decimales podemos
contar hasta mil números (de 0 a 999); y así sucesivamente. En general, con N espacios
2
COMPUTACIÓN I (ELO) - INFORMÁTICA I (BIO)
Representación de la Información
decimales o dígitos podemos contar hasta 10N números diferentes, comenzando con el 0 y el
máximo número será siempre 10N - 1.
3.1.2 Sistema Binario Natural.
Desafortunadamente, el sistema numérico decimal no se presta para una implementación
conveniente en los sistemas digitales. Por ejemplo resulta muy difícil diseñar un equipo
electrónico que pueda funcionar con 10 diferentes niveles de tensión (de los cuales cada uno
representa a un caracter decimal, 0-9). Por otro lado, es muy fácil diseñar circuitos electrónicos
precisos y confiables que operen con solo 2 niveles de tensión. Por ésta razón, casi todos los
sistemas digitales utilizan el sistema numérico binario (base 2) como sistema numérico básico
para sus operaciones.
En el sistema binario solamente hay dos símbolos posibles, el 0 y el 1, no obstante, éste
sistema de base 2 se puede utilizar para representar cualquier cantidad numérica, empleando
para ello la cantidad de dígitos binarios que sean necesarios.
El sistema binario es un sistema de valor posicional (similar al decimal), en donde cada dígito
binario tiene un valor propio expresado como potencia de 2. Esto se observa en la Figura 3-2,
aquí, los espacios que hay a la izquierda del punto binario (equivalente del punto decimal) son
potencias positivas de 2 y los espacios que hay a la derecha del punto corresponden a las
potencias negativas de 2. El número 1011,101 se representa en la Figura 3-2. Para determinar
su equivalente en el sistema decimal simplemente tomamos la suma de los productos del valor
de cada bit (0 o 1) por su valor posicional correspondiente.
1011,1012
= (1*23 + 0*22 + 1*21 + 1*20 + 1*2-1 + 0*2-2 + 1*2-3)
= 8 + 0 + 2 + 1 + 0.5 + 0 + 0.125
= 11.62510
Obsérvese en la operación anterior que los subíndices (2 y 10) se usan para indicar la base en
la cual se expresa el número en cuestión. Esta convención sirve para evitar confusión cuando
se utiliza más de un sistema numérico.
En el sistema binario, el término dígito binario se lo indica normalmente como bit (ver unidad 2).
Como se observó en el sistema decimal, en el sistema binario utilizando N bits o espacios,
podemos contar 2N números diferentes. Por ejemplo, con 2 bits podemos realizar hasta 22 = 4
conteos; con 4 bits tendremos 24 = 16 combinaciones; y así sucesivamente. El Nro. mayor a
representar estará dado por 2N-1.
Figura 3-2 - Valores de posición binaria como potencias de 2
3
COMPUTACIÓN I (ELO) - INFORMÁTICA I (BIO)
Representación de la Información
3.1.2.1 Representación de cantidades binarias.
En los sistemas digitales, la información que está siendo procesada por lo general se presenta
en forma binaria. Las cantidades binarias se pueden representar físicamente por medio de
cualquier dispositivo que solamente tenga dos estados de operación o dos posibles
condiciones. Por ejemplo, un interruptor tiene solo dos estados: abierto o cerrado.
Arbitrariamente podemos considerar que un interruptor abierto represente el 0 binario y que
uno cerrado represente el 1 binario. Con ésta suposición se puede representar cualquier
número binario como se ilustra en la Figura 3-3(a), donde los estados de los diversos
interruptores representan la cantidad 100102.
Otro ejemplo de lo anterior se observa en la misma figura donde se utilizan agujeros perforados
en papel para representar números binarios. Un agujero perforado es un 1 binario y la ausencia
de un agujero es un cero binario.
Existen muchos otros dispositivos que solamente tienen dos estados de operación o bien que
solo pueden operar en dos condiciones extremas. Entre ellos se pueden citar: la bombilla
eléctrica (encendida o apagada), el diodo (conduce o no conduce), un relay (energizado o no
energizado), el transistor (cortado o saturado), fotocélula (iluminada u oscura), termostato
(abierto o cerrado) y la cinta magnética (magnetizada o desmagnetizada).
Figura 3-3 Uso de (a) interruptores
(b) cinta de papel perforada para representar
números binarios
En los circuitos electrónicos digitales, la información binaria se representa por medio de
tensiones o corrientes eléctricas que están presentes en las entradas o en las salidas de los
diversos circuitos. Comúnmente, el 0 y el 1 binario se representan con dos niveles de tensión
nominal. Por ejemplo, cero volts (0 V) podría representar el cero binario y +5 V., el uno binario.
En realidad debido a las variaciones del circuito, el 0 y el 1 se representan por medio de
intervalos de tensión. Esto se muestra en la Figura 3-4(a), donde cualquier tensión entre 0 y 0,8
V representa un cero binario y cualquier tensión entre 2 y 5 V representa un uno. La figura 3.4
(b) muestra una forma de onda digital secuencial para representar el valor binario 010102.
Se puede observar otra diferencia significativa entre los sistemas digitales y los analógicos. En
los sistemas digitales, el valor exacto de una tensión no es importante; por ejemplo, una tensión
de 3,6 V es lo mismo que una de 4.3 V. En los sistemas analógicos el valor exacto de una
tensión sí es importante. Por ejemplo, si la tensión analógica es proporcional a la temperatura
registrada por un transductor, 3,6 V representaría una temperatura diferente a la
correspondiente a 4,3 V. En otras palabras, el valor de la tensión lleva asociada información
significativa. Esta característica implica que el diseño de circuitos analógicos precisos es
mucho más complicado que el de circuitos digitales.
4
COMPUTACIÓN I (ELO) - INFORMÁTICA I (BIO)
Representación de la Información
3.1.2.2 Conversión de binario a decimal.
Teniendo en cuenta lo expresado en párrafos anteriores, donde se definió al sistema de
numeración binario como un sistema posicional en el que cada dígito binario (bit) tiene un valor
que depende de su posición relativa al LSB. Cualquier número binario puede convertirse a su
equivalente decimal, simplemente sumando los valores (pesos) correspondientes a las diversas
posiciones en que el número binario contienen un 1.
Figura 3-4 (a) Asignaciones comunes de voltaje en el sistema digital; (b) señal digital común.
Por ejemplo:
1
1
0
1
12
(binario)
1x24 + 1x23 + 0x22 + 1x21 + 1x20 = 16 + 8 + 2 + 1
= 2710 (decimal)
3.1.2.3 Conversión de decimal a binario.
Para convertir números decimales a binario se utiliza un método llamado de divisiones
sucesivas, el cual emplea divisiones repetidas por 2. La conversión que se ilustra a continuación
para el número 25, requiere que se divida en forma repetitiva por 2 y que se escriban los restos
después de cada división hasta que se obtenga un cociente nulo. El número binario se obtiene
escribiendo el primer resto como el bit menos significativo (LSB) y el último como el bit mas
significativo (MSB).
Figura 3-5
5
COMPUTACIÓN I (ELO) - INFORMÁTICA I (BIO)
Representación de la Información
3.1.3 Sistema numérico octal.
El sistema numérico octal es muy importante en el trabajo que se realiza en una computadora
digital. Este sistema tiene una base de ocho, lo cual significa que tiene ocho posibles dígitos: 0, 1,
2, 3, 4, 5, 6 y 7. De esta manera, cada dígito de un número octal puede tener cualquier valor entre
0 y 7. Las posiciones de los dígitos de un número octal tienen los siguientes valores:
Un número octal puede convertirse fácilmente en su equivalente decimal multiplicando cada dígito
octal por su valor posicional (peso). Por ejemplo,
3728 =
3*82 + 7*81 + 2*80
=
3*64 + 7*8 + 2*1
=
25010
3.1.3.1 Conversión de decimal a octal
Un Número entero decimal se puede convertir en octal mediante el uso del mismo método de
divisiones sucesivas que se usó en la conversión de decimal a binario, pero ahora con un divisor
de 8 en lugar de 2. La siguiente figura muestra un ejemplo de esta conversión.
Figura 3-6
Nótese que el primer resto o residuo se transforma en el dígito menos significativo (LSD) del
número octal y el último residuo se convierte en el dígito más significativo (MSD).
3.1.3.2 Conversión de octal a binario
La ventaja principal del sistema numérico octal es la facilidad con la cual puede realizarse la
conversión entre números binarios y octales. La conversión de octal a binario se lleva a cabo
convirtiendo cada dígito octal en su equivalente binario de 3 bits. Los ocho dígitos posibles se
convierten según la siguiente tabla.
Dígito Octal
Equivalente binario
0
1
2
3
4
5
6
7
000
001
010
011
100
101
110
111
Por medio de estas conversiones cualquier dígito octal se transforma en binario convirtiéndolo en
forma individual. Por ejemplo, podemos convertir 4728 en binario de la siguiente manera:
6
COMPUTACIÓN I (ELO) - INFORMÁTICA I (BIO)
4
7
2
100
111
010
Representación de la Información
Por lo tanto, el número octal 472 es equivalente al binario 100111010.
3.1.3.3 Conversión de binario a octal.
La conversión de enteros binarios en octales es simplemente la operación inversa del proceso
anterior. Los bits del número binario se agrupan de a tres comenzando por el menos significativo
(LSB). Luego cada grupo se convierte en su equivalente octal de acuerdo a la tabla de
equivalencias, algunas veces el número binario no tendrá grupos completos de tres bits, en esos
casos se puede agregar uno o dos ceros a la izquierda del bit más significativo. Un ejemplo es el
siguiente: Convertir el Número binario 11010110 a octal.
011
010
110
3
2
6
Con N dígitos octales, podemos contar desde 0 hasta 8N - 1, lo que da un total de 8N diferentes
combinaciones. Por ejemplo, con tres dígitos octales podemos contar desde 0008 a 7778 lo que
hace un total de 83 = 51210 diferentes números.
La facilidad con la cual pueden hacerse conversiones entre el sistema octal y el binario hace que
el sistema octal sea atractivo como un medio taquigráfico para expresar números binarios
grandes. En computadoras grandes son comunes números binarios de hasta 64 bits. Estos
números binarios no siempre representan a una cantidad numérica (datos), también pueden
representar direcciones de memoria, un código de una instrucción, un código que representa
caracteres alfabéticos, o bien el conjunto de bits puede representar el estado en que se
encuentran los dispositivos internos o externos a la computadora.
Cuando se trabaja con una cantidad considerable de números binarios de muchos bits, es
adecuado y más eficaz escribir los números en octal en lugar de binario. Sin embargo,
recordemos que los circuitos y sistemas digitales trabajan únicamente en binario; se usa el
sistema octal sólo por conveniencia para la operación del sistema.
3.1.4 Sistema numérico hexadecimal.
El sistema hexadecimal emplea la base 16, por lo tanto tiene dieciséis posibles símbolos digitales.
Utiliza los dígitos de 0 a 9 más las letras A, B, C, D, E y F como símbolos para sus dígitos. La
Tabla 3-1 muestra la relaciones existentes entre los sistemas hexadecimal, octal, decimal y
binario.
Hexadecimal
0
1
2
3
4
5
6
7
8
9
A
B
Octal
0
1
2
3
4
5
6
7
10
11
12
13
Binario
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
Decimal
0
1
2
3
4
5
6
7
8
9
10
11
7
COMPUTACIÓN I (ELO) - INFORMÁTICA I (BIO)
C
D
E
F
Representación de la Información
14
15
16
17
1100
1101
1110
1111
12
13
14
15
Tabla 3-1
3.1.4.1 Conversión de hexadecimal a decimal.
Un número hexadecimal (hex) se puede convertir a su equivalente decimal utilizando el hecho de
que cada posición de los dígitos hexadecimales tiene un peso que corresponde a una potencia de
16, por ser este también un sistema posicional, el LSD tiene un peso de 160 = 1; el siguiente dígito
tiene un peso de 161 = 16; el siguiente tiene un valor de 162 = 256 y así sucesivamente. El
proceso de conversión se muestra en el siguiente ejemplo:
2AF16 = 2 * 162 + 10 * 161 + 15 * 160
= 512 + 160 + 15
= 68710
3.1.4.2 Conversión de decimal a hexadecimal.
La conversión de decimal a hexadecimal se puede realizar por el método de divisiones sucesivas
ya utilizado en los sistemas estudiados anteriormente, para este caso el divisor será 16; dado que
es la base de este sistema. El método se describe en el siguiente ejemplo:
Figura 3-7
3.1.4.3 Conversión de hexadecimal a binario.
Al igual que el sistema numérico octal, el sistema hexadecimal se usa principalmente como
método "taquigráfico" en la representación de números binarios. La conversión de un número hex
a binario es una tarea simple. Cada dígito hex se convierte directamente en su equivalente binario
de cuatro bits. Esto se puede apreciar en el ejemplo siguiente,
9F216 =
=
=
9
F
1001
1111
2
0010
1001111100102
8
COMPUTACIÓN I (ELO) - INFORMÁTICA I (BIO)
Representación de la Información
3.1.4.4 Conversión de binario a hexadecimal.
Esta conversión es exactamente la operación recíproca del proceso anterior. El número binario se
agrupa en conjuntos de cuatro bits de derecha a izquierda y si el último grupo queda incompleto
se completa con ceros, luego cada grupo se convierte en su dígito hexadecimal equivalente.
1011101001102
=
1011
=
B
=
1010 0110
A
6
BA616
Con N dígitos hexadecimales, podemos contar desde 0 hasta 16N -1, lo que da un total de 16N
diferentes combinaciones. Por ejemplo, con tres dígitos hexadecimales podemos contar desde
00016 a FFF16 lo que hace un total de 163 = 409610 diferentes números.
Conclusión: Es conveniente habituarse, desde un principio, a manejar los números en sus
distintas representaciones, pues el buen programador deberá usarlas a menudo.
3.2 Código BCD.
Cuando números, letras o palabras se representan mediante una combinación especial de
símbolos se denomina codificación; y al conjunto de símbolos se le conoce como código.
Probablemente uno de los códigos más conocido es el Código Morse, en el cual las series de
puntos y rayas representan letras del alfabeto. Se ha observado que cualquier número decimal se
puede representar por medio de un número binario equivalente. La combinación de ceros y unos
del número binario se puede considerar como un código que representa el número decimal.
Cuando un número decimal se representa con su número binario equivalente, se le denomina
codificación binaria directa o bien se lo considera al número representado en sistema binario.
Los sistemas digitales utilizan algunas formas de números binarios para su operación interna,
pero el mundo externo es de naturaleza decimal. Esto significa que deben realizarse conversiones
entre los sistemas decimal y binario, las cuales pueden ser largas y complicadas si se trabajan
con números grandes. Por esta razón, surgió un sistema de codificación de números decimales,
que combina algunas características de los sistemas decimal y binario.
El Código BCD (Decimal Codificado en Binario), como su nombre lo indica, representa cada dígito
decimal por su equivalente binario. Si tenemos en cuenta que un dígito decimal puede tomar
como valor máximo 9, se necesitaran 4 bits para codificar cada dígito.
La representación de un número en BCD se muestra en el siguiente ejemplo.
8
7
4
(decimal)
1000
0111
0100
(BCD)
El código BCD, representa cada dígito del número decimal por medio de un número binario de
cuatro bits. Por lo tanto, de las 16 combinaciones posibles solo utiliza diez las que van de 0000 a
1001, las no utilizadas son: 1010, 1011,1100, 1101, 1110 y 1111.
3.2.1 Comparación entre BCD y binario.
Es muy importante comprender que el BCD no es otro sistema numérico como el binario, el octal,
el decimal y el hexadecimal. Es, de hecho, el sistema decimal con cada dígito codificado en su
equivalente binario. También es importante entender que un número en BCD no es lo mismo que
un número binario directo. En Binario directo se toma el número decimal completo y se lo
representa en binario, según las reglas de conversión descritas; el código BCD convierte cada
dígito decimal en binario en forma individual. Para ilustrar lo anterior, tomemos el número 137 y
comparemos sus representaciones en binario directo o binario natural y BCD:
9
COMPUTACIÓN I (ELO) - INFORMÁTICA I (BIO)
13710 =
100010012
13710 =
0001 0011 0111 (BCD)
Representación de la Información
(binario)
En el ejemplo se observa que para representar el número 137 en BCD se emplearon 12 bits,
mientras que en su representación binaria directa solo son 8 bits. El código BCD requiere más bits
que el binario directo para representar números decimales de más de un dígito. Esto se debe a
que el código BCD no utiliza todas las posibles combinaciones de 4 bits como se indico antes y,
por tanto, es un poco ineficiente.
La ventaja principal del código BCD es la relativa facilidad de conversión en, y de, decimal. Solo
es necesario recordar los códigos binarios de cuatro bits de los primeros 10 dígitos. Esta facilidad
de conversión es también importante desde el punto de vista del hardware, ya que en un sistema
digital son los circuitos electrónicos los que efectúan las conversiones en, y de, decimal.
El Código BCD sirve en máquinas digitales siempre que la información decimal se aplique como
entradas o bien se exhiba como salidas. Los voltímetros digitales, los cronómetros digitales
utilizan el BCD, debido a que exhiben la información de salida en decimal.
El código BCD no se utiliza con mucha frecuencia en las computadoras digitales modernas de alta
velocidad por dos razones fundamentales:
Una es la indicada anteriormente, que se refiere a la necesidad del código BCD, de utilizar mayor
cantidad de bits para representar un número, que en el sistema binario directo. Esto desde el
punto de vista de la máquina representa mayor requerimiento de memoria y serán necesarias
más instrucciones de CPU para realizar cualquier operación con el dato.
La otra razón se debe a que los procesamientos aritméticos para números representados en
código BCD son bastante más complicados que en binario directo y por lo tanto requieren de
circuitos más complejos. Los circuitos más complejos contribuyen a una disminución de la
velocidad a la cual se realizan las operaciones aritméticas. Por esta causa es que las calculadoras
que utilizan el BCD son considerablemente más lentas en su operación que las computadoras.
3.3 Códigos Alfanuméricos.
Para poder ser realmente útil, una computadora debe poder manejar no solo información
numérica. En otras palabras, una computadora debe poder reconocer códigos que representen
números, letras y caracteres especiales. Estos códigos se clasifican como códigos alfanuméricos.
Un código alfanumérico debe tener, como mínimo, en su conjunto los elementos necesarios para
representar: las 26 letras mayúsculas; las 26 letras minúsculas; las 10 cifras numéricas y cerca de
25 caracteres especiales, como +, #, %, &, etc. Esto da un total de 87 caracteres, y para obtener
esta cantidad de combinaciones se necesitarán por lo menos 7 bits. El código alfanumérico más
utilizado es el código ASCII.
3.3.1 EL código ASCII.
Este es el código más conocido, su nombre es "American Standard Code for Information
Interchange" (Código Estándar Americano para el Intercambio de Información), y es utilizado por
la mayoría de los fabricantes de computadoras.
Este sistema de codificación utiliza 7 bits para definir 128 códigos diferentes, el bit restante del
byte correspondiente, es siempre 0 para los caracteres estándar, mientras que toma el valor 1
cuando se refiere a caracteres gráficos particulares de algunas máquinas.
Cada uno de estos 128 códigos corresponde a una letra del alfabeto, a un número del 0 al 9, a un
signo matemático o de puntuación y también representan códigos de control.
La Tabla 3-2 especifica la tabla de caracteres ASCII expresada en decimal y hexadecimal.
10
COMPUTACIÓN I (ELO) - INFORMÁTICA I (BIO)
3.4
Representación de la Información
Representación de Números
3.4.1 Representación de números con signo.
Uno de los principales requerimientos en el trabajo con datos numéricos es que exista la
posibilidad de que los números puedan ser distinguidos en positivos y negativos. Para ello existen
trés sistemas de representación como veremos a continuación.
A. Signo y Módulo
En este sistema de representación, del total de bits disponibles para la codificación del
número, se separa un bit (por convención el mas significativo), que representará el signo. El
valor cero (0) de este bit, significará que el resto de los bits representan un número positivo. En
caso de ser uno (1) implicará número negativo. En este sistema el rango de representación de
números se ve disminuido con respecto a el rango de los números sin signo. Por ejemplo,
para 4 bits
rango sin signo
0 a 15
rango con signo
-7 a 7
Ejemplos de representación:
Número 5
0 | 101
Número -5
1 | 101
Inconveniente
Número
0 | 000
+0
Número
1 | 000
-0
El 0 (cero) tiene dos
representaciones!!!
B. Complemento a 1
En este sistema los números positivos se codifican exactamente igual que en el método
anterior. En cambio para los negativos se aplica la siguiente definición de complemento a 1:
C1(N) = 2n - 1 - |N|
Donde n es el número de bits utilizado para la codificación del número N. Por ejemplo, para 8
bits,
N = 12
000011002
Entonces el número negativo, o sea el -12 será,
N = -12 = C1(12) = 28 - 1 - |12| = 256 - 1 - |12| = 255 - |12| = 243
En binario será,
N = -12
= C1(12) = 28 - 1 - |12|
= 100000000 - 1 - 00001100
= 11111111 - 00001100
= 111100112
Observando este resultado concluimos que la forma mas rápida de obtener el complemento a
1 de un número cualquiera es complementar (todos los unos pasan a ceros y todos los ceros
pasan a unos) bit a bit todo el número.
Por ejemplo para N = 12
00001100
entonces
11110011
11
COMPUTACIÓN I (ELO) - INFORMÁTICA I (BIO)
Representación de la Información
Inconveniente: si aplicamos el método de complementar bit-a-bit tenemos…
Número 00000000
+0
Número 11111111
-0
El 0 (cero) tiene dos
representaciones!!!
Carácteres no imprimibles
Carácteres imprimibles
Nombre
Dec Hex Car. Dec Hex Car. Dec Hex Car. Dec Hex Car.
Nulo
0 00 NUL
32 20 Espacio
64 40 @
96 60 `
Inicio de cabecera
1 01 SOH
33 21
!
65 41 A
97 61 a
Inicio de texto
2 02 STX
34 22
"
66 42 B
98 62 b
Fin de texto
3 03 ETX
35 23
#
67 43 C
99 63 c
Fin de transmisión
4 04 EOT
36 24
$
68 44 D
100 64 d
enquiry
5 05 ENQ
37 25
%
69 45 E
101 65 e
acknowledge
6 06 ACK
38 26
&
70 46 F
102 66 f
Campanilla (beep)
7 07 BEL
39 27
'
71 47 G
103 67 g
backspace
8 08 BS
40 28
(
72 48 H
104 68 h
Tabulador horizontal
9 09 HT
41 29
)
73 49 I
105 69 i
Salto de línea
10 0A LF
42 2A
*
74 4A J
106 6A j
Tabulador vertical
11 0B VT
43 2B
+
75 4B K
107 6B k
Salto de página
12 0C FF
44 2C
,
76 4C L
108 6C l
Retorno de carro
13 0D CR
45 2D
77 4D M
109 6D m
Shift fuera
14 0E SO
46 2E
.
78 4E N
110 6E n
Shift dentro
15 0F SI
47 2F
/
79 4F O
111 6F o
Escape línea de datos 16 10 DLE
48 30
0
80 50 P
112 70 p
Control dispositivo 1
17 11 DC1
49 31
1
81 51 Q
113 71 q
Control dispositivo 2
18 12 DC2
50 32
2
82 52 R
114 72 r
Control dispositivo 3
19 13 DC3
51 33
3
83 53 S
115 73 s
Control dispositivo 4
20 14 DC4
52 34
4
84 54 T
116 74 t
neg acknowledge
21 15 NAK
53 35
5
85 55 U
117 75 u
Sincronismo
22 16 SYN
54 36
6
86 56 V
118 76 v
Fin bloque transmitido 23 17 ETB
55 37
7
87 57 W
119 77 w
Cancelar
24 18 CAN
56 38
8
88 58 X
120 78 x
Fin medio
25 19 EM
57 39
9
89 59 Y
121 79 y
Sustituto
26 1A SUB
58 3A
:
90 5A Z
122 7A z
Escape
27 1B ESC
59 3B
;
91 5B [
123 7B {
Separador archivos
28 1C FS
60 3C
<
92 5C \
124 7C |
Separador grupos
29 1D GS
61 3D
=
93 5D ]
125 7D }
Separador registros
30 1E RS
62 3E
>
94 5E ^
126 7E ~
Separador unidades
31 1F US
63 3F
?
95 5F _
127 7F DEL
Tabla 3-2 Código ASCII estándar
12
COMPUTACIÓN I (ELO) - INFORMÁTICA I (BIO)
Representación de la Información
C. Complemento a 2
Al igual que en los dos métodos anteriores , la representación de los números positivos es la
misma. Para los números negativos se aplica la definición de complemento a 2,
C2(N) = 2n - |N| = C1(N) + 1
Donde n es el número de bits utilizado para la codificación del número N. Por ejemplo, para
8 bits,
N = 12
000011002
Entonces el número negativo, o sea el -12 será,
N = -12 = C2(12) = 28 - |12| = 256 - |12| = 244
En binario será,
N = -12
= C2(12) = 28 - |12|
= 100000000 - 00001100
= 111101002
3.4.2 Simple precisión, doble precisión.
La longitud de palabra de un dato que puede tratar un computador es algunas veces
insuficiente para la precisión que se necesita. En este caso, se recurre a más de un palabra
para representarlo. Se le denomina doble precisión, si se utilizan dos palabras, triple precisión si se utilizan tres, etc.
3.4.3 Representación Coma Fija y Coma Flotante
Se utilizan dos formas principales de representación de la coma (punto) de un número decimal:
el modo de coma fija, llamado así porque la coma es colocada arbitrariamente por el
programador en cualquier lugar, y el modo de coma flotante, donde su ubicación está definida
por un exponente.
A. Coma Fija (Punto Fijo)
Según vimos, la cantidad de bit que puede tratar un procesador en paralelo es una de las
características del mismo, y es así que tenemos palabras datos de 1, 4, 8, 16, 32 bits, etc.
Estas cantidades de bits nos limita el máximo número a representar, el que aún queda
reducido si se debe representar el signo. Si además hay que separar lugares para la parte
fraccionaria, la forma se reduciría por ejemplo a :
10110
.011
|
posición arbitraria de la coma
B. Coma Flotante (Punto Flotante)
La forma de representación general es:
N = M * BE
donde :
N = número a representar
M = mantisa
B = base
E = exponente
13
COMPUTACIÓN I (ELO) - INFORMÁTICA I (BIO)
Representación de la Información
Inclusive puede adicionarse el signo tanto en la mantisa como en el exponente.
N = S1. M * BS2.E
Por ejemplo, para una palabra de 8 bit, si se utilizan 4 para la mantisa y 4 para el
exponente, con una base binaria, obtenemos como número máximo:
15 * 215 = 491.52010
mientras que con coma fija, y con el mismo formato para la parte entera que para la
decimal, solo se podría codificar hasta el (15,93).
La mantisa define la precisión, mientras que el exponente especifica el rango del número. El
número de bits para la mantisa es justamente fijado de acuerdo a la precisión requerida.
Este sistema permite aumentar la exactitud de los cálculos pues se logra un uso más
racional de los registros y es menos frecuente el desborde (Overflow). Las desventajas
están en la relativa complejidad de la adición pues hay que igualar los exponentes. Por su
parte el método de coma fija, tiene la ventaja de que si fijamos los operandos entre (-1; +1),
el producto también estará en ese rango y no hará falta modificar el posible factor de escala.
Como desventaja, la programación es más complicada, por que si los dos factores son
pequeños el error de redondeo (round off) puede ser tan grande que requerirá de una
programación especial para reducirlo. En aplicaciones de control, puesto que el programa
se desarrolla una sola vez, y queda fijo en la computadora, es viable el punto fijo que
simplifica el hardware, siempre que sea posible pues existen casos en que la precisión y los
rangos de los números no lo permiten. Con el advenimiento de los coprocesadores o
procesadores aritméticos se minimiza el problema del punto flotante, ya que estos permiten
trabajar en esta forma con una capacidad de por ej. 80 bit y realizar operaciones, no solo
aritméticas sino también trigonométricas.
14
Descargar