Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
1
En este tema nos restringiremos principalmente a los tres primeros tipos de caracteres,
a veces denominados caracteres-texto. A la agrupacin de los dos primeros tipos se le
denomina conjunto de caracteres alfanumricos.
De la misma forma que una mquina de escribir no suele tener teclas para todos los
caracteres posibles, un sistema de procesamiento de la informacin (perifrico o
procesador) puede no reconocer algunos caracteres (la , por ejemplo). Toda
comunicacin con una computadora convencional se realiza segn los caracteres que
admitan sus dispositivos de E/S, y con ellos los usuarios tienen que expresar cualquier
dato o instruccin. Es decir, toda instruccin o dato se representar por un conjunto de
caracteres tomados del alfabeto definido en el sistema a utilizar. A continuacin vamos a
ver cmo se pueden representar los caracteres en las computadoras.
El diseo de un sistema informtico resulta ms fcil, su realizacin menos compleja
y su funcionamiento muy fiable, si se utilizan slo dos valores o estados posibles para las
variables fsicas que representan los caracteres en los soportes de informacin 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 tensin (0 voltios y
3.5 voltios, por ejemplo), dos valores de corriente, dos situaciones de una lmpara
(apagada y encendida), etc. En otras palabras, la informacin es retenida por medio de
dos valores de una magnitud fsica (bit) que podemos representar conceptualmente por
ceros y unos.
Al tener que traducir toda la informacin 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 codificacin o representacin 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 cdigos de transformacin se denominan cdigos de entrada/salida (E/S) o
cdigos externos y pueden definirse de forma arbitraria. No obstante existen cdigos de
E/S normalizados que son utilizados por diferentes constructores de computadoras; estos
cdigos los estudiaremos ms adelante.
Las operaciones aritmticas con datos numricos se suelen realizar en una
representacin ms adecuada para este objetivo que la obtenida con el cdigo de E/S. Por
ello en la propia computadora se efecta una transformacin entre cdigos binarios,
obtenindose una representacin fundamentada en el sistema de numeracin en base 2,
sistema que puede considerarse como una codificacin en binario ms, pero que al ser
una representacin numrica posicional es muy apta para realizar operaciones aritmticas.
2.- SISTEMAS DE NUMERACIN USUALES EN INFORMTICA.
Las computadoras suelen efectuar las operaciones aritmticas utilizando una
representacin para los datos numricos basada en el sistema de numeracin base dos o
sistema binario (que llamaremos binario natural para no confundir con los cdigos
binario de E/S).
Tambin se utilizan los sistemas de numeracin, preferentemente el octal y
hexadecimal, para obtener cdigos intermedios. Un nmero expresado en uno de estos
dos cdigos puede transformarse directa y fcilmente a binario y viceversa. Con ellos se
2
simplifica la transcripcin de nmeros binarios y se est ms prximo al sistema usado
normalmente (sistema decimal), por lo que a veces se utilizan como paso intermedio en
las transformaciones de decimal a binario y viceversa. Adems, la realizacin electrnica
de codificadores/decodificadores entre binario y un cdigo intermedio es mucho menos
compleja que entre binario y decimal.
2.1. Representacin posicional de los nmeros.
Un sistema de numeracin en base b utiliza para representar los nmeros un alfabeto
compuesto por b smbolos o cifras. As, todo nmero se expresa por un conjunto de cifras,
contribuyendo cada una de ellas con un valor que depende
de la cifra en s, y
de la posicin que ocupe dentro del nmero.
En el sistema de numeracin decimal, o sistema en base 10, que es el que ms se usa,
b = 10 y el alfabeto est constituido por diez smbolos, llamados tambin cifras
decimales:
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
y, por ejemplo, el nmero 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 posicin (unidades, decenas, centenas, millares, etc.) tiene
un peso especifico, as:
posicin 0 unidades peso b0 posicin 2 centenas peso b2
posicin 1 decenas peso b1 posicin 3 millares peso b3
..................
En general que la representacin de un nmero 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 nmero resulta ms cmodo que los smbolos del alfabeto o la base
de numeracin sean las menos posibles, pero tambin es cierto que cuanto menor es la
base, mayor es el nmero de cifras que se necesitan para representar una cantidad dada.
Por ejemplo, el valor en binario del nmero decimal 175 es 1111011.
2.2. Sistema de numeracin en base dos.
Como ya se dijo las operaciones aritmticas en una computadora se suelen realizar
usando una representacin para datos y resultados en sistema binario natural. A pesar de
que el cambio del cdigo binario de E/S a la representacin en binario natural se realiza
de forma automtica 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. Definicin del sistema binario.
En el sistema de numeracin binario b es igual a 2 y Decimal Binario
slo se precisan dos elementos, el conjunto {0, 1}, para 0 000
representar cualquier nmero. 1 001
2 010
3 011
3
Los elementos de este alfabeto se conocen como 4 100
cifras binarias o bits. En la Tabla 1 se muestran los 5 101
nmeros enteros binarios que se pueden formar con tres 6 110
dgitos o bits, que se corresponden con los nmeros 7 111
decimales del 0 al 7.
Tabla 1. Nmeros binarios del 1 al
7.
2.2.1. Pasar un nmero de sistema binario a decimal.
Para transformar un nmero en sistema binario a decimal slo hay que tener en cuenta
las expresiones (1) y (2) en las que b sea igual a 2.
Ejemplo 1.
Transformar a decimal los siguientes nmeros binarios:
110010; 1,1101; 10111,011;
110010)2 = (1 x 2 ) + (1 x 2 ) + (1 x 2 ) = 25 + 24 + 21 = 32 + 16 + 2 = 50)10
5 4 1
4
b) La parte fraccionaria del nuevo nmero en binario se obtiene multiplicando por 2
sucesivamente la parte entera del nmero decimal que se quiere convertir a binario
y las partes fraccionarias que se vayan obteniendo en los productos sucesivos. El
nmero en binario se formar con las partes enteras, que sern siempre 0 o 1, de los
productos obtenidos, como se puede ver en el siguiente ejemplo.
Ejemplo 4.
0,1875)10 en decimal es: 0,1875)10 = 0.0011)2
0,1875 0,3750 0,7500 0,5000
x 2 x 2 x 2 x 2
0,3750 0,7500 1,5000 1,0000
Ejemplo 5.
Transformar a binario el nmero decimal 77,423
a) Parte entera:
77 2
1 38 2
0 18 2
0 9 2
1 4 2
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 nmero decimal con cifras fraccionarias
pude dar lugar a un nmero binario con un nmero de cifras fraccionarias mucho mayor
o incluso infinito. En la computadora si el nmero binario se almacena con nmero
prefijado de bits se producir un error de truncamiento.
2.3. Operaciones aritmticas con variables binarias.
Una variable binaria puede representar, entre otras cosas, una cifra de un nmero en
binario o una variable booelana.
Las operaciones aritmticas bsicas son suma, resta, multiplicacin y divisin. Al ser
la representacin en binario una notacin ponderada (es decir que verifica la expresin
2), estas operaciones son anlogas a las realizadas en decimal pero hay que usar para cada
posicin las tablas siguientes, segn la operacin aritmtica a realizar.
Tabla 2. Suma aritmtica. Tabla 3. Resta aritmtica.
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
5
1 1 0 y me llevo 1 1 1 0
6
1100 o bien, 9999 9999
0016 complemento a 9 de 16 0016 + 9983
1084 9983 (1)0001
+ 0001
1084
- En base 2.
El complemento a la base menos uno (es decir, a uno) del nmero 10010 es
01101
11111
10010
01101
El complemento a uno de 101010 es 010101
111111
101010
010101
Restar 1000111 10010
1000111
0010010
0110101
o usando el complemento a uno de 0010010 = 1101101
1000111
1101101
(1)0110100
+ 0000001
0110101
Se observa claramente que para transformar un nmero 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 nmero, N, es el nmero que resulta de restar cada
una de las cifras de N a la base menos uno del sistema de numeracin que se est
utilizando y, posteriormente, sumar uno a la diferencia obtenida.
Se pueden restar dos nmeros 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 nmero 63 es 37
99 36
63 y + 01
36 37
El complemento a 10 del nmero 16 es 84
99 83
16 y + 01
83 84
7
Supngase 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 nmero 10010 es 01110
11111 01101
10010 y + 00001
01101 01110
El complemento a 2 del nmero 101010 es 010110
111111 010101
101010 y + 000001
010101 010110
Supngase 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 nmero 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 nmero N de n cifras es (bn N).
Complemento a la base, b 1, de un nmero N de n cifras es (bn N 1).
2.5. Cdigos intermedios.
Los cdigos intermedios se fundamentan en la facilidad de transformar un nmero en
base 2 a otra base que sea una potencia de 2 (22 = 4; 23 = 8; 24 = 16, etc.), y viceversa.
Usualmente se utilizan como cdigos intermedios los sistemas de numeracin en
base 8
(u octal) y en base 16 (o hexadecimal).
2.5.1.Base octal.
En la base octal, b = 8 y el conjunto de smbolos utilizado es:
{0, 1, 2, 3, 4, 5, 6, 7}
Un nmero octal puede pasarse a binario aplicando los algoritmos vistos con
anterioridad en la Pregunta 2.1. No obstante, al ser b = 8 = 23, puede hacerse la conversin
con facilidad de la siguiente forma.
Para transformar un nmero binario a octal se forman grupos de tres cifras binarias a
partir del punto decimal hacia la izquierda y hacia la derecha. Posteriormente se efecta
directamente la conversin a octal de cada grupo individual.
Si al formar los grupos de cifras ocurre que existe un grupo que no est completo
(tienes menos de 3 cifras) se completa con ceros por la izquierda si el grupo est a la
izquierda del punto decimal o por la derecha si el grupo est a la derecha.
8
Como en la prctica slo es necesario hacer la conversin a octal (o a decimal) de cada
uno los grupos de tres cifras, basta con memorizar la Tabla 1 para poder realizar
rpidamente la conversin a octal.
Ejemplo 9.
n binario 10 101 110 100 , 111 10)2 = 2.564,74)8
n octal 2 5 6 4 , 7 4
n binario 10 110)2 = 26)8
n octal 2 6
De octal a binario se pasa slo convirtiendo individualmente a binario (tres bits) cada
cifra octal, manteniendo el orden del nmero original.
Ejemplo 10.
576,34)8 = 101 111 110 , 011 100)2
5 7 6 , 3 4
132,22)8 = 001 011 010 , 010 010)2
1 3 2 , 2 2
Para pasar de un nmero octal a decimal se aplica la expresin (2) con b = 8. Para
pasar un nmero entero decimal a octal se hacen sucesivas divisiones enteras del nmero
y los sucesivos cocientes por 8 (tal y como se haca por 2). Para transformar la parte
fraccionaria de un nmero decimal a octal se hacen sucesivos productos por 8 (igual que
cuando para pasar a binario se haca por 2).
Ejemplo 11.
1.367,25)8 = 759,328125)10
1.367,25)8 = (1 x 83) + (3 x 82) + (6 x 81) +(7 x 80) + (2 x 8-1) +(5 x 8-2) =
512 + 192 + 48 + 7+ 0,25 + 0,078125 =759,328125)10
760,33)10 = 1.370,2507)8
Parte entera:
760 8
40 95 8
0 15 11 8
7 3 1
Parte fraccionaria:
0,33 0,64 0,12 0,96
x 8 x 8 x 8 x 8
2,64 5,12 0,96 7,68
2.5.2.- Base hexadecimal.
Para representar un nmero en la base hexadecimal, b = 16, es necesario disponer de
un conjunto o alfabeto de 16 smbolos. Se suele usar el siguiente conjunto:
{0, 1, 2, 3, 4, 5, 6, 7, 8,9, A, B, C, D, E, F}
los valores binarios y decimales que corresponden a las cifras hexadecimales se muestran
en la siguiente tabla.
Hexadecimal Decimal Binario
9
0 0 0000
1 1 0001
2 2 0010
3 3 0011
4 4 0100
5 5 0101
6 6 0110
7 7 0111
8 8 1000
9 9 1001
A 10 1010
B 11 1011
C 12 1100
D 13 1101
E 14 1110
F 15 1111
Tabla 6. Cifras hexadecimales y sus valores decimal y binario.
Al ser b = 16 = 24, se puede hacer que las conversiones de binario a hexadecimal y
viceversa, de forma anloga al sistema octal. Pero aqu utilizaremos grupos de 4 bits en
lugar de grupos de 3 bits.
Si al formar los grupos de cifras ocurre que existe un grupo que no est completo
(tienes menos de 4 cifras) se completa con ceros por la izquierda si el grupo est a la
izquierda del punto decimal o por la derecha si el grupo est a la derecha.
Ejemplo 12.
n binario 10 0101 1110 1010 , 1011 110)2 =
2.5EA,BC)H
n hexadecimal 2 5 E A , B C
es decir:
0010 0101 1110 1010, 1011 1100 = 2.5EA,BC)H
Ejemplo 13.
n hexadecimal 1 A D E 7 , E 4)H
n binario 0001 1010 1101 1110 0111 , 1110 0100)2
es decir:
1A.DE7,E5)H = 1 1010 1101 1110 0111,1110 01)2
De la misma manera que manualmente es muy fcil convertir nmeros de binario a
octal y viceversa, y de binario a hexadecimal y viceversa, tambin es sencillo hacer estas
conversiones electrnicamente o a travs de un programa, por lo que a veces la
computadora usa este tipo de notaciones intermedias internamente o como E/S.
Para transformar un nmero de hexadecimal a decimal se aplica la expresin (2) con
b = 16. Para pasar un nmero entero decimal a hexadecimal se hacen sucesivas divisiones
enteras del nmero y los sucesivos cocientes por 16 (tal y como se haca por 2 o por 8).
Para transformar la parte fraccionaria de un nmero decimal a hexadecimal se hacen
sucesivos productos por 16 (tal y como se haca por 2 o por 8).
Ejemplo 14.
B.3D7,A4)H = 759,328125)10
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 cdigo octal se suele utilizar cuando el nmero de bits es mltiplo de 3, y el cdigo
hexadecimal cuando dicho nmero es mltiplo de 4.
.
11