Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
OBJETIVOS.
En este tema se verán los aspectos relacionados con la representación de la información en
el interior de las computadora, tanto la representación de información numérica como no
numérica. También se analizan los aspectos prácticos de los sistemas de numeración
matemáticos desde el punto de vista de su aplicación en Informática, ya que gran cantidad de
las transformaciones de información que tienen lugar en la computadora se fundamentan en los
sistemas de numeración.
Posteriormente se presentan los códigos de entrada/salida, con los que se traduce la
información externa a la computadora en forma comprensible por los elementos internos del
mismo. También se hacen unas consideraciones generales sobre los problemas que presentan
los errores producidos en la transmisión o almacenamiento de información, así como las
técnicas más básicas para la detección automática de estos errores. Por último se consideran
las transformaciones internas que tienen lugar en la computadora con los datos en código de
E/S para su adecuación en la realización de operaciones aritméticas.
1.- INTRODUCCION.
Una computadora es una máquina que procesa información. Más concretamente, la
ejecución de un programa implica la realización de unos tratamientos con unos datos, según
indica un conjunto ordenado de instrucciones, programa. Lógicamente, para que la
computadora ejecute un programa es necesario darle dos tipos de informaciones: las
instrucciones que forman el programa y los datos con los que debe operar ese programa.
Dos de los aspectos más importantes que se presentan en Informática relacionados con la
información son cómo «representarla» y cómo «registrarla» físicamente. Ambos problemas
están íntimamente relacionados y el primero de ellos es el objetivo fundamental de este
capítulo. El segundo objetivo se resuelve con «soportes de información» (discos y cintas
magnéticas, etc. ) que se estudiarán en el Capítulo 4.
Normalmente la información se da a la computadora en la forma usual escrita que utilizan
los seres humanos; es decir, con ayuda de un alfabeto o conjunto de símbolos, que
denominaremos caracteres.
Los caracteres que constituyen el alfabeto suelen agruparse en cinco categorías:
Caracteres alfabéticos: son las letras mayúsculas y minúsculas del abecedario inglés:
A, B, C, D, E, ..., X, Y, Z, a, b, c, d, ..., x, y, z
Caracteres numéricos: están constituidos por las diez cifras decimales:
0, 1, 2, 3, 4, 5, 6, 7, 8, 9
El cero suele marcarse con una raya inclinada (0) para evitar posibles confusiones con la
“o” mayúscula (O).
Caracteres especiales. son los símbolos no incluidos en los grupos anteriores, entre otros
están los siguientes.
) ( , ./ ; : + Ñ ñ = ! ? "& > # < ] [ SP
donde SP se representa el espacio en blanco, tal como el que separa dos palabras.
Caracteres de control: representan órdenes de control, como el carácter indicador de fin
de línea o el carácter indicador de sincronización de una transmisión o de que se emita un
pitido en un terminal, etc. Muchos de los caracteres de control son generados e insertados
por el propio computadora.
Caracteres gráficos: son símbolos o módulos con los que se pueden representar figuras (o
iconos) elementales.
En este tema nos restringiremos principalmente a los tres primeros tipos de caracteres, a
veces denominados caracteres-texto. A la agrupación de los dos primeros tipos se le denomina
conjunto de caracteres alfanuméricos.
Capítulo 2: Representación de la información en las computadoras. Página 2.
De la misma forma que una máquina de escribir no suele tener teclas para todos los
caracteres posibles, un sistema de procesamiento de la información (periférico o procesador)
puede no reconocer algunos caracteres (la ñ, por ejemplo). Toda comunicación con una
computadora convencional se realiza según los caracteres que admitan sus dispositivos de E/S,
y con ellos los usuarios tienen que expresar cualquier dato o instrucción. Es decir, toda
instrucción o dato se representará por un conjunto de caracteres tomados del alfabeto definido
en el sistema a utilizar. A continuación vamos a ver cómo se pueden representar los caracteres
en las computadoras.
El diseño de un sistema informático resulta más fácil, su realización menos compleja y su
funcionamiento muy fiable, si se utilizan sólo dos valores o estados posibles para las variables
físicas que representan los caracteres en los soportes de información o en el interior de la
computadora. Como ya se indicó, estos valores conceptualmente se representan por cero (0) y
uno (1), y corresponden a dos niveles de tensión (0 voltios y 3.5 voltios, por ejemplo), dos
valores de corriente, dos situaciones de una lámpara (apagada y encendida), etc. En otras
palabras, la información es retenida por medio de dos valores de una magnitud física (bit) que
podemos representar conceptualmente por ceros y unos.
Al tener que “traducir” toda la información suministrada a la computadora a ceros y unos,
es necesario establecer una correspondencia entre el conjunto de todos los caracteres
= {A, B, C, D,..., Z, a, b,..., z, 0,1, 2, 3,..., 9, /, +, (, ),...)
y el conjunto binario
= {0,1}n
es decir, es necesario hacer una codificación o representación de los elementos de un conjunto
(en este caso ) mediante los de otro conjunto () de forma tal que a cada elemento de le
corresponda un elemento distinto de (n bits).
Estos códigos de transformación se denominan códigos de entrada/salida (E/S) o códigos
externos y pueden definirse de forma arbitraria. No obstante existen códigos de E/S
normalizados que son utilizados por diferentes constructores de computadoras; estos códigos
los estudiaremos más adelante.
Las operaciones aritméticas con datos numéricos se suelen realizar en una representación
más adecuada para este objetivo que la obtenida con el código de E/S. Por ello en la propia
computadora se efectúa una transformación entre códigos binarios, obteniéndose una
representación fundamentada en el sistema de numeración en base 2, sistema que puede
considerarse como una codificación en binario más, pero que al ser una representación
numérica posicional es muy apta para realizar operaciones aritméticas.
a) de la cifra en sí, y
b) de la posición que ocupe dentro del número.
En el sistema de numeración decimal, o sistema en base 10, que es el que más se usa,
b = 10 y el alfabeto está constituido por diez símbolos, llamados también cifras decimales:
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
y, por ejemplo, el número 5.367,24 se puede obtener como suma de:
5 000 + 300 + 60 + 7 + 0,2 + 0,04 = 5.367,24
es decir, se verifica que:
5.367,24 = 5 x 103 + 3 x 102 + 6 x 101 + 7 x 100 + 2 x 10-1 + 4 x 10-2
Se puede observar que cada posición (unidades, decenas, centenas, millares, etc.) tiene un
peso especifico, así:
posición 0 unidades peso b0 posición 2 centenas peso b2
1
posición 1 decenas peso b posición 3 millares peso b3
.................
.
En general que la representación de un número en una base b:
N …n4, n3, n2, n1, n0, n-1, n-2, n-3, … (1)
tiene una forma abreviada de expresar su valor es la siguiente:
N …n4 x b4 + n3x b3 + n2x b2 + n1x b1 + n0x b0 + n-1x b-1 + n-2x b-2 + n-3x b-3 + … (2)
Para representar un número resulta más cómodo que los símbolos del alfabeto o la base de
numeración sean las menos posibles, pero también es cierto que cuanto menor es la base,
mayor es el número de cifras que se necesitan para representar una cantidad dada.
Por ejemplo, el valor en binario del número decimal 175 es 1111011.
2.2. Sistema de numeración en base dos.
Como ya se dijo las operaciones aritméticas en una computadora se suelen realizar usando
una representación para datos y resultados en sistema binario natural. A pesar de que el cambio
del código binario de E/S a la representación en binario natural se realiza de forma automática
por la computadora, es conveniente recordar una serie de cuestiones relativas al sistema
binario y a las transformaciones entre éste y el sistema decimal.
2.2.1. Definición del sistema binario.
En el sistema de numeración binario b es igual a 2 y Decimal Binario
sólo se precisan dos elementos, el conjunto {0, 1}, 0 000
para representar cualquier número. 1 001
Los elementos de este alfabeto se conocen como 2 010
cifras binarias o bits. En la Tabla 1 se muestran los 3 011
números enteros binarios que se pueden formar con 4 100
tres dígitos o bits, que se corresponden con los 5 101
6 110
números decimales del 0 al 7.
7 111
Tabla 1. Números binarios del 1 al 7.
0 2 2
1 1
b) Parte fraccionaria:
0,423 0,846 0,692 0,384 0,768
x 2 x 2 x 2 x 2 x 2
0,846 1,692 1,384 0,768 1,536
Es decir:
77,423)10 = 1101001,01101…)2
En este último ejemplo se observa que un número decimal con cifras fraccionarias pude dar
lugar a un número binario con un número de cifras fraccionarias mucho mayor o incluso
infinito. En la computadora si el número binario se almacena con número prefijado de bits se
producirá un error de truncamiento.
2.3. Operaciones aritméticas con variables binarias.
Una variable binaria puede representar, entre otras cosas, una cifra de un número en binario
o una variable booelana.
Las operaciones aritméticas básicas son suma, resta, multiplicación y división. Al ser la
representación en binario una notación ponderada (es decir que verifica la expresión 2), estas
operaciones son análogas a las realizadas en decimal pero hay que usar para cada posición las
tablas siguientes, según la operación aritmética a realizar.
Tabla 2. Suma aritmética. Tabla 3. Resta aritmética.
a b a+b a b ab
0 0 0 0 0 0
0 1 1 0 1 1 y me adeudo 1
1 0 1 1 0 1
1 1 0 y me llevo 1 1 1 0
+ 0000001
0110101
Se observa claramente que para transformar un número binario, N, a complemento a 1
basta con cambiar en N los unos por los ceros y viceversa.
El complemento a la base de un número, N, es el número que resulta de restar cada una
de las cifras de N a la base menos uno del sistema de numeración que se esté utilizando y,
posteriormente, sumar uno a la diferencia obtenida.
Se pueden restar dos números sumando al minuendo el complemento a la base del
sustraendo y, despreciando, en su caso el acarreo del resultado.
Ejemplo 8.
- En base 10.
El complemento a 10 del número 63 es 37
99 36
63 y + 01
36 37
El complemento a 10 del número 16 es 84
99 83
16 y + 01
83 84
Supóngase que queremos efectuar las siguientes operaciones: 7763 y 100 – 16.
Se pueden realizar de forma directa: 7763 = 14; 100 – 16 = 84,
o bien, utilizando el complemento del sustraendo.
77 100
+ 37 y + 84
(1)14 (1)84
El complemento a 2 del número 10010 es 01110
11111 01101
10010 y + 00001
01101 01110
El complemento a 2 del número 101010 es 010110
111111 010101
101010 y + 000001
010101 010110
Supóngase que queremos efectuar las siguientes restas: 11001 10010 y
110000 – 101010. Se pueden realizar de forma directa: 11001 10010 = 00111;
110000 – 101010 = 00110, o bien, utilizando el complemento del sustraendo.
11001 110000
+ 01110 y + 010110
(1)00111 (1)001110
Se observa claramente que para transformar un número binario, N, a complemento a 2
basta con cambiar en N los unos por los ceros y los ceros por los unos y sumar 1 al resultado.
Como resumen de las definiciones dadas y al generalizar se tiene que:
Complemento a la base, b, de un número N de n cifras es (bn N).
Complemento a la base, b –1, de un número N de n cifras es (bn – N 1).
2.5. Códigos intermedios.
Los códigos intermedios se fundamentan en la facilidad de transformar un número en base 2
a otra base que sea una potencia de 2 (22 = 4; 23 = 8; 24 = 16, etc.), y viceversa.
Capítulo 2: Representación de la información en las computadoras. Página 8.
Para transformar un número de hexadecimal a decimal se aplica la expresión (2) con b = 16.
Para pasar un número entero decimal a hexadecimal se hacen sucesivas divisiones enteras del
número y los sucesivos cocientes por 16 (tal y como se hacía por 2 o por 8). Para transformar
la parte fraccionaria de un número decimal a hexadecimal se hacen sucesivos productos por 16
(tal y como se hacía por 2 o por 8).
Ejemplo 14.
B.3D7,A4)H = 759,328125)10
B.3D7,A4)H = (11 x 163) + (3 x 162) + (13 x 161) +(7 x 160) + (10 x 16-1) +(5 x 16-2) =
45.056 + 768 + 208 + 7+ 0,625 + 0,01953125 = 46.039,64453125) 10
9372,79)10 = C.942,CA3D)H
Parte entera:
9372 16
137 585 16
92 105 36 16
12 9 4 2
Parte fraccionaria:
0,79 0,64 0,24 0,84
x 16 x 16 x 16 x 16
12,64 10,24 3,84 13,44
El código octal se suele utilizar cuando el número de bits es múltiplo de 3, y el código
hexadecimal cuando dicho número es múltiplo de 4.
Es decir, se verifica que para codificar m símbolos diferentes se necesitarán n bits, siendo,
n log2 m = 3.32 log (m) (9)
como en la práctica n debe ser entero, n será el menor número entero que verifique lo anterior.
Ejemplo 15.
Para codificar las 10 cifras decimales {0, 1, ..., 9}se necesitarán:
n = 3,3221 . log (m) = 3,322 bits
es decir, 4 bits (con 3 sólo podemos codificar 8 símbolos).
Capítulo 2: Representación de la información en las computadoras. Página 11.
BCD BCD
Caracte de intercambio EBCDIC ASCII Caracte de intercambio EBCDIC ASCII
r normalizado (hexadecimal) (octal) r normalizado (hexadecimal) (octal)
(octal) (octal)
Los datos tipo carácter, representan sencillamente cadenas de caracteres ensambladas en las
palabras del ordenador y se almacenan usando el código de entrada y salida que se utiliza en la
computadora, y no se necesita ninguna transformación para manejarlos, es decir, no es
necesario efectuar ninguna conversión de representación. Para almacenar frases o palabras la
computadora utiliza conjuntos de caracteres.
Los datos de tipo entero y tipo real son los más utilizados, y la mayoría de otros tipos y
estructuras de datos se basan en ellos, por eso analizamos su representación en detalle.
5.2.1.- Representación interna de datos de tipo entero.
Vamos a distinguir dos formas distintas de representar en el interior de la computadora los
datos de tipo entero; éstas son representación binaria y representación de dígitos decimales
codificados en binario (o representación BCD).
5.2.1.1.- Datos de tipo entero representados en binario.
Se supone que en la computadora se reservan n posiciones (incluida la del signo) para
representar el dalo, N. El bit más significativo (MSB: "Most Significative Bit") se representa
como an-1 y el menos significativo como a0. Existen dos alternativas de representación:
Posición 15 14 13 12 13 12 11 10 9 8 7 6 5 4 3 2 1 0
a) Sin signo N>0
Posición 15 14 13 12 13 12 11 10 9 8 7 6 5 4 3 2 1 0
b) Signo y magnitud
o complemento a 1 S N
o complemento a 2
Posición 15 14 13 12 13 12 11 10 9 8 7 6 5 4 3 2 1 0
c) Sesgado N+S
N: binario natural, o complemento a 1, o complemente a 2.
Posición 15 14 13 12 13 12 11 10 9 8 7 6 5 4 3 2 1 0
d) BCD empaquetado BCD BCD
Figura 3. Esquemas de diferentes representaciones de datos de tipo entero.
Complemento a 2.- El signo se representa con el bit situado más a la izquierda del dato
(bit an-1) , Figura 3.b. Este bit será 0 si el número es positivo y 1 si el número es negativo.
Si el número es positivo, en el resto de bits ( an-2 a a0) se representa el valor del número
en binario natural.
Si el número es negativo, en el resto de bits ( an-2 a a0) se representa en complemento a 2
del valor absoluto del número en binario natural.
Sesgada.- En esta representación, Figura 3.c, sencillamente se le suma al número N, el
sesgo 2n-1, de forma tal que el número que se obtiene siempre es positivo. Así que no es
necesario reservar explícitamente un bit par el signo.
Tipo de representación.
Nº. decimal Signo y magnitud Complemento a 1 Complemento a 2 Sesgado
7 0111 0111 0111 1111
6 0110 0110 0110 1110
5 0101 0101 0101 1101
4 0100 0100 0100 1100
3 0011 0011 0011 1011
2 0010 0010 0010 1010
1 0001 0001 0001 1001
0 0000 0000 0000 1000
-0 ---- 1111 ---- ----
-1 1001 1110 1111 0111
-2 1010 1101 1110 0110
-3 1011 1100 1101 0101
-4 1100 1011 1100 0100
-5 1101 1010 1011 0011
-6 1110 1001 1010 0010
-7 1111 1000 1001 0001
-8 ---- ---- 1000 0000
Tabla 11. Alternativas de representación de datos de tipo entero con signo para n =4 bits.
Hasta la década de los años ochenta puede decirse que cada fabricante de computadoras
utilizaba un sistema propio para la representación de números reales; pero es de gran
importancia que existan sistemas normalizados, ya que ello posibilita que los matemáticos
construyan bibliotecas de programas de alta calidad, los diseñadores de computadoras puedan
construir unidades aritmético - lógicas muy eficientes, y los fabricantes de circuitos integrados
puedan construir aceleradores y coprocesadores aritméticos estándar. Debido a ello, de 1977 a
1985, la asociación IEEE desarrolló un sistema normalizado de representación, denominado
Normalización IEEE 754 que es el que hoy día tiene mayor aceptación.