You are on page 1of 15

Gustavo D-Modificado Oct 2012

Sistemas Numricos Representacin


de Nmeros Reales
Gustavo D-Modificado Oct 2012
1. Introduccin
La representacin de nmeros reales en una computadora no es tan directa como la
representacin de enteros. Esto se debe a que los nmeros reales tienen dos partes,
una parte entera y una parte fraccional. Por ello, es importante para nosotros el
entender como las computadoras guardan los nmeros reales.
El nmero de bits disponibles en una computadora para representar un nmero de
punto flotante o real puede ser comparativamente grande. Por ejemplo, si 2 bytes de
memoria es reservada para enteros en una computadora, entonces al menos 4 bytes
son reservados para nmeros de punto flotante.
Los nmeros reales son ms grandes que los enteros en el sentido de que existe una
parte entera y una parte fraccional.
Los nmeros reales como (32.5)
10
consisten de dos partes, una parte entera 32 y
una parte fraccional 5. De acuerdo a sus pesos posicionales, as es como se vera:
(32.5)
10
= 3x10
1
+ 2x10
0
+ 5x10
-1

Veremos cmo un nmero real decimal puede ser convertido en binario y cmo puede
ser representado usando algunos ejemplos.
Ejemplo 4.1
Este ejemplo muestra cmo el nmero real (32.5)
10
puede ser convertido en su
forma binaria y cmo puede ser representado en una forma esquemtica.
Paso 1: Convertir la porcin entera (32)
10
en binario.
32
2 16 0 LSB
2 8 0
2 4 0
2 2 0
2 1 0
0 1 MSB

As, la forma binaria de (32)
10
es (100000)
2

Paso 2: Convertir la parte fraccional (.5)
10
en binario.
Para hacer esto, multiplicamos el nmero por 2, extrayendo la parte entera resultante
en cada paso. El proceso es repetido con la parte fraccionaria resultante hasta que se
vuelva cero (con ciertos nmeros fraccionarios en decimal, como 0.3, el proceso
anterior puede no terminar).
0.5x2 = 1.0 1
Dado que la parte fraccional se volvi cero, el bit extrado que constituye el equivalente
binario de (.5)
10
es (.1)
2
.
As, el equivalente binario de (32.5)
10
es (100000.1)
2
.
Vamos a tomar otro ejemplo consistente de slo la parte fraccionaria para entender
mejor la conversin. Vamos a convertir .625 en su equivalente binario.
.625 x 2 = 1.250 1
.250 x 2 = 0.50 0
.50 x 2 = 1.0 1
Gustavo D-Modificado Oct 2012
En el tercer paso, la parte fraccional resultante se convierte en cero. As .625 =
(101)
2
.
Paso 3: Representar el nmero binario que tiene una parte entera y una parte
fraccional.
Uno de los esquemas para representar nmeros reales ms ampliamente usados es
expresarlos en trminos de una mantisa y un exponente. En este formato, (32.5)
10

es expresado como esto.
(32.5)
10
= .325x10
2
Aqu, .325 es llamado la mantisa y 2 es llamado el exponente. Hemos movido el
decimal a la izquierda dos posiciones, as elevamos 10 a la potencia 2. El nmero se
dice que esta normalizado si el decimal es seguido inmediatamente por un dgito
diferente de cero. En forma similar, podemos expresar un nmero binario en trminos
de un exponente y una mantisa. Un nmero real binario est normalizado si, en la
mantisa, el bit 1 ocurre inmediatamente despus del punto decimal.
En nuestro caso, (100000.1)
2
puede escribirse como se muestra a continuacin.
.1000001x2
6

Aqu, (.1000001)
2
es la mantisa en su forma normalizada y 6 es el exponente
(ahora expresado en potencias de 2). Est claro que necesitamos guardar los bits de
la mantisa y del exponente en forma separada.
Lo siguiente proporciona un esquema para guardar nmeros reales en el sistema
binario, asumiendo que se usan 4 bytes.


Bit de Signo 15 bits para mantisa
8 bits ms para mantisa 8 bits para exponente
Usamos un total de 32 bits para guardar un nmero real. Un bit es usado para el
signo, 23 bits para la mantisa excluyendo el bit de signo y 8 bits para el exponente.
Paso 4: Guardar la mantisa normalizada en los 23 bits reservados para ella.
La mantisa normalizada es (.1000001)
2
. Como estamos representando un nmero
positivo; el bit de signo es 0. Note que (.1000001)
2
requiere slo de 7 bits. Por lo
tanto, rellenamos la mantisa con 16 ceros a la derecha.
sb
1 0 0 0 0 0 1 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 EXPONENTE

Eso deja slo 8 bits para el trabajo de representar al exponente .
Algunas veces tambin tenemos que representar exponentes negativos como
.10101x2
-3


Necesitamos representar ambos, enteros positivos y negativos, en 8
bits. En otras palabras, requerimos de un bit de signo. Vamos a ver cmo
representamos un entero con signo para el exponente.
Imagine que tenemos 8 bits para representar el exponente y que los enteros son
representados en la forma de complemento a dos. As, podemos representar enteros
Gustavo D-Modificado Oct 2012
en el rango [-128, +127] y exponentes en el rango [2
-128
, 2
+127]
. El menor
exponente que puede ser representado en 8 bits es 2
-128
. Para lograr esto, tenemos
que convertir -(128)
10
en binario en la forma de complemento a dos y guardarlo.
Para evitar representar nmeros negativos, seguimos un esquema diferente.
Sumamos una cantidad positiva +(128)
10
al exponente y representamos el resultado
en 8 bits.
Por ejemplo, para representar (128)
10
como en 2
-128
, sumamos +(128)
10
al
exponente y representamos el resultado. Esto es -128 + 128 = 0. Por lo tanto, para
representar -128 como un exponente, se usa 0. Esto es llamado el exponente
desplazado debido a que estamos desplazando el exponente por cierto valor. Este
valor es llamado el cdigo excedente. As
exponente desplazado = exponente + cdigo excedente
Para un conjunto dado de n bits para un exponente, el cdigo de exceso debe ser
+2
n-1
. Por ejemplo, si n es 4, el cdigo de exceso puede ser +2
4-1
= 8 y si n es 8,
el cdigo de exceso es +2
8-1
= 128. Al desplazar el exponente con el cdigo de
exceso, tenemos slo enteros positivos en un rango entre 0 y 2
n
-1. Aqu decimos 2
n

en vez de 2
n-1
dado que usamos todos los n bits para la representacin, ya que no
hay un bit de signo.
Vamos a tomar un ejemplo para entender esto claramente. Asumiendo que el nmero
de bits dado para el exponente es 4, sabemos que podemos representar exponentes
en el rango de 2
4-1
a +2
4-1
-1, lo que es 8 a +7. Un total de 16 exponentes pueden
ser representados desde 8 a +7. Cuando aplicamos el cdigo de exceso de +8, el
exponente desplazado vara de 0 a 15, lo que de nuevo representa 16 valores.
Paso 5: Sumar el cdigo de exceso al exponente y representarlo en los 8 bits para un
exponente desplazado.
Exponente desplazado = 6 + 128 = (134)
10
.
134
2 67 0 LSB
2 33 1
2 16 1
2 8 0
2 4 0
2 2 0
2 1 0
2 0 1 MSB

As, (134)
10
es expresado como (10000110)
2
Note cuidadosamente que estos 8 bits contiene slo una magnitud positiva y por lo
tanto no hay necesidad de un bit de signo. Siempre podemos obtener de nuevo el
valor del exponente restando el cdigo de exceso del exponente desplazado.
Paso 6: La representacin final de (32.5)
10
en forma binaria se expresa:
1 0 0 0 0 0 1 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0
Este esquema usa 32 bits, o 4 bytes. Por lo tanto, nos referimos a l como el esquema
de 32 bits para la representacin de nmeros reales en binario.
Gustavo D-Modificado Oct 2012
Fin de Ejemplo 4.1

Ejemplo 4.2
ste ejemplo mostrar como representar (32.5)
10
en el esquema de 32 bits,
seguido en el Ejemplo 4.1 de esta Unidad. Sabemos del ejemplo previo que (32.5)
10

es expresado como (.1000001)x2
6
Aqu, la representacin de (32.5)
10
en el esquema de 32 bits es mostrada en tres
pasos.
Paso 1: Represente la mantisa normalizada y el exponente desplazado como se
muestra en el Ejemplo 4.1.
1 0 0 0 0 0 1 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0
Paso 2: Considere la mantisa completa incluyendo el bit de signo. Convirtalo en su
forma de complemento a dos para representar el nmero negativo.
Bits Originales : 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Bits cambiados : 1 0 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
Sumar 1 : 1
Complemento a Dos : 1 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Paso 3: La representacin de (-32.5)
10
es dada a continuacin.
0 1 1 1 1 1 1 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0

El bit de signo es ahora 1, indicando un nmero negativo. Debe notarse que para
representar un nmero negativo, slo convertimos los bits de la mantisa a la forma de
complemento a dos. El exponente desplazado permanece sin cambio.
Fin de Ejemplo 4.2
Los ejemplos anteriores ilustran el mtodo de convertir un nmero real decimal en su
forma binaria y representar el nmero binario como una mantisa normalizada y un
exponente desplazado.
Tambin aprendimos que, para representar un nmero real negativo, tenemos que
representar primero la contraparte positiva y convertir todos los bits de la mantisa,
incluyendo el bit de signo, en su forma de complemento a dos.
A pesar que el procedimiento no es complicado, ciertos nmeros reales pueden crear
problemas. Examinaremos esto en el siguiente ejemplo.
El siguiente ejemplo nos muestra que hacer cuando la parte fraccional de un nmero
real no produce un cero durante su conversin usando multiplicacin.
Ejemplo 4.3
Representar (108.3)
10
en su forma binaria aplicando el esquema mencionado
anteriormente. En este ejemplo, mostramos ambas conversiones, llamadas, real a
binario y binario a real. Estas son mostradas en los pasos como RB y BR
respectivamente.
Paso RB1: Convertir (108)
10
en binario.
Gustavo D-Modificado Oct 2012
108
2 54 0 LSB
2 27 0
2 13 1
2 6 1
2 3 0
2 1 1
2 0 1 MSB

Por lo tanto, (108)
10
= (1101100)
2
Paso RB2: Convertir (.3)
10
en binario.
0.3x2 = 0.6 0
0.6x2 = 1.2 1
0.2x2 = 0.4 0
0.4x2 = 0.8 0
0.8x2 = 1.6 1
0.6x2 = 1.2 1
0.2x2 = 0.4 0
0.4x2 = 0.8 0
0.8x2 = 1.6 1
0.6x2 = 1.2 1
0.2x2 = 0.4 0
0.4x2 = 0.8 0
0.8x2 = 1.6 1
Vamos a entender ahora que pasa cuando la multiplicacin no produce un cero en la
parte fraccionaria. En el ejemplo anterior, la fraccin .3 nunca produce un cero
mientras convertimos la parte fraccionaria. Los bits 1100 parece que se repiten en
forma infinita. Todos estos bits son parte de la mantisa. Ya tenemos (108)
10
=
(1101100)
2
que toma 7 bits de la mantisa. Por lo tanto, slo tenemos 16 bits en la
mantisa para guardar (.3)
10
. Simplemente tomamos los primeros 16 bits extrados
anteriormente y descartamos el resto.
As, (108.3)
10
es expresado como
(1101100.0100110011001100)
2

en 23 bits para la mantisa. Note que el orden de los bits extrados para la parte
fraccionaria es el mismo en el cual fueron extrados (de arriba a abajo). Recuerde que
en el caso de un entero es en el orden inverso de los bits extrados despus de la
divisin (de abajo a arriba).
Paso RB3: La forma normalizada de
(1101100.0100110011001100)
2
.11011000100110011001100x2
7
Paso RB4: El exponente 7 debe ser convertido en un exponente desplazado
sumndole 128. El exponente desplazado es 7 + 128 = (135)
10
.
Paso RB5: Convertir el exponente desplazado (135)
10
en binario.
135
2 67 1 LSB
2 33 1
Gustavo D-Modificado Oct 2012
2 16 1
2 8 0
2 4 0
2 2 0
2 1 0
2 0 1 MSB

(135)
10
= (10000111)
2
Paso RB6: La representacin de (108.3)
10
es dada a continuacin.
1 1 0 1 1 0 0 0 1 0 0 1 1 0 0
1 1 0 0 1 1 0 0 1 0 0 0 0 1 1 1

Por supuesto, no hemos representado .3 en forma exacta debido a la limitacin de
bits en la mantisa. Dada la limitacin de bits en la mantisa, es todo lo que podemos
hacer para representar (108.3)
10.

Para encontrar qu representa el nmero binario de 32 bits , tenemos que reconvertir
la representacin binaria en decimal, como se muestra a continuacin. Usaremos el
mismo patrn usado para (108.3)
10
.
Paso BR1: Considere los bits en el exponente desplazado (10000111)
2
. Representa
(135)
10
. Sabemos que sumamos el cdigo de exceso 128 para obtener el exponente
desplazado. El exponente ordinario es 135 - 128 = (7)
10
.
Paso BR2: De los bits de la mantisa sabemos el nmero normalizado
.1101100010011001100x2
7
= (1101100.0100110011001100)
2
Paso BR3: Convertir la parte entera a decimal. Sabemos de nuestro ejemplo anterior
que
(1101100)
2
= (108)
10
.
Paso BR4: Convertir (.0100110011001100)
2
a decimal.
(.0100110011001100)
= 1x2
-2
+ 1x2
-5
+ 1x2
-6
+ 1x2
-9
+ 1x2
-10
+ 1x2
-13
+ 1x2
-14

= 1/4 + 1/32 + 1/64 + 1/512 + 1/1024 + 1/8192
+ 1/16384
= 4096 + 512 + 256 + 32 + 16 + 2 + 1
16384
= 4915/16384
= 0.2940
As, la representacin del nmero decimal (108.3)
10
en binario se vuelve slo
(108.2940)
10
. Esta discrepancia se debe a dos razones:
La fraccin .3 produce un flujo recurrente de bits cuando es convertido a
binario.
El nmero de bits para la mantisa es limitado.
Debe notarse que an si tenemos un milln de bits para la mantisa no seremos
capaces de representar 108.3 en forma precisa.
Fin de Ejemplo 4.3
Gustavo D-Modificado Oct 2012
La computadora es un dispositivo fascinante. Pero debido a que realiza cierto nmero
de funciones, tiene sus propias limitaciones. Una de las limitaciones es que slo puede
guardar aproximaciones de algunos nmeros reales. Podemos tomar estas
aproximaciones lo ms cercanas al nmero representado incrementando el nmero de
bits en la mantisa. Sin embargo, an esto tiene un lmite. Dada la limitacin en el
nmero de bits en la mantisa y el exponente desplazado, es necesario conocer el
rango y la precisin de los nmeros reales que pueden ser representados.
Para la representacin de enteros, el rango de enteros que pueden ser representados
est claramente especificado con 2
n-1
a 2
n-1
-1 para la representacin de
complemento a dos. No es tan directo para los nmeros reales y slo podemos
aproximar que nmeros reales pueden ser representados dado un conjunto de bits
para la mantisa y exponente. Vamos a aprender acerca de ellos ahora.
2. Rango y Precisin
Considere el esquema discutido anteriormente.

Bit de Signo 15 bits para mantisa
8 bits ms para mantisa 8 bits para exponente
Aqu, un total de 23 bits son usados para la mantisa, excluyendo el bit de signo y 8
bits para el exponente desplazado. El mximo nmero que puede ser representado
con precisin en una mantisa de 23 bits es 2
23
-1 como 8388607.0. Pero cmo
representamos 8388607.5? Este no puede ser representado en forma precisa, dado
que la misma representacin de 8388607 toma todos los 23 bits de la mantisa.
Necesitamos un bit ms para representar la parte fraccionaria de 0.5, el cual no
tenemos. Por lo tanto, 8388607.5 no puede ser representado en forma precisa en el
esquema anterior.
Qu hay sobre 2404304.5? Fcilmente podemos verificar que la representacin de
2404304 tiene nicamente 22 bits, y por lo tanto, 2404304.5 puede ser
representada de manera precisa.
Esto nos demuestra que si tenemos menos dgitos en la parte integral, tendremos ms
bits en la mantisa para representar la parte fraccionaria. La precisin con la que
podamos representar un nmero real depende del nmero de dgitos en el nmero (la
parte integral y la parte fraccionaria). Esto nos lleva directamente a una pregunta:
Cuantos dgitos de un nmero real pueden ser representados de manera precisa en
una mantisa de N bits?
Par dar respuesta a esta pregunta, hacemos uso de la siguiente relacin:
N
2
N
= 10
log
10
2
= 10
Nlog
10
2
= 10
0.3xN
Si la mantisa esta compuesta de 23 bits, podemos obtener una precisin de 23 *
0.3 = 6.9 (aproximadamente 7). Usted debe notar que una precisin de 7 dgitos
no significa que cualquier nmero que tenga 7 dgitos o menos pueda ser exactamente
representado.
Hemos visto anteriormente que .3 posee nicamente un dgito y que no puede ser
representado de manera exacta. Sera as con fracciones como 0.4, 0.2, 0.6,
etc. El concepto de precisin sirve simplemente para darnos una idea de un nmero
de dgitos decimales significativos que uno puede representar en un nmero binario
utilizando un nmero finito o limitado de bits para la mantisa.
Gustavo D-Modificado Oct 2012
El exponente desplazado tambin tiene una limitacin de nmeros arreglados de bits.
Los exponentes desplazados mnimos y mximos en el sistema binario pueden ser
entre 0 y 255 para un exponente de 8 bits. En el esquema de representacin
mostrado anteriormente, el nmero ms grande que puede ser representado es:
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Lo cual es:
0.11111111111111111111111x2
127
.
Hemos llegado a 127 para los exponentes de la siguiente manera:
Exponente desplazado es 11111111 = (255)
10
Exponente es 255 - 128 = (127)
10
, donde 128 es el cdigo de exceso.
2
127
es aproximadamente 10
0.3x127
= 10
38.1
Similarmente, 2
-128
es aproximadamente 10
-128x0.3
= 10
-38.4

Por lo tanto, un exponente de 8 bits nos da un rango de aproximadamente 10
-38
. En
general, un exponente de N bits dara un rango de 10
.3p
, donde p = 2
N
-1.
En resumen, el nmero de dgitos significativos que pueden ser representados de
manera precisa depende del nmero de bits disponible para la mantisa, mientras que
el rango de nmeros reales que puede ser representado depende del nmero de bits
del exponente desplazado.
Hasta ahora, hemos visto algo del sistema binario y como los nmeros decimales
pueden ser representados de forma binaria. Existen, sin embargo, muchos otros
sistemas usados en la computacin. El sistema octal y el sistema hexadecimal son
algunos de los ms populares y ampliamente utilizados. Vamos a discutir estos dos
sistemas a continuacin.

3. El Sistema Numrico Octal y el Hexadecimal
3.1 El Sistema Octal
El sistema octal es denominado el sistema numrico basado en 8. Posee 8 dgitos
validos, llamados, 0,1,2,3,4,5,6, y 7. Un nmero octal vlido es uno cuya
combinacin de nmeros sean dgitos validos de 0 a 7. Veamos el ejemplo dado a
continuacin:
120
765
025
7654
Todos estos son nmeros octales vlidos. El nmero 876 no es un nmero octal vlido
porque contiene el dgito 8. Usted recordar que 02 no es un nmero binario vlido.
Para evitar cualquier confusin con nmeros del sistema decimal, los nmeros octales
se escriben como (120)
8
, que con el subndice 8 est denotando la base del
nmero. El nmero (120)
8
no se lee como ciento veinte en decimal. Para obtener la
magnitud del nmero, expresamos los dgitos del nmero de pesos posicionales en
potencias de 8.
(120)
8
= 1x8
2
+ 2x8
1
+ 0x8
0
Gustavo D-Modificado Oct 2012
= 64 + 16 + 0
= (80)
10
De esta manera, (120)
8
es ochenta en el sistema decimal. Para obtener el
equivalente octal de un nmero decimal dado, tenemos que dividir el nmero por 8 y
extraer el exceso.
Por ejemplo, as es como convertimos (300)
10
en un nmero octal.
300
8 37 4 LSB
8 4 5
0 4 MSD

De esta manera el nmero octal equivalente de (300)
10
es(454)
8
.
La relacin entre el sistema octal y el sistema binario es usualmente utilizada en la
computacin. Los nmeros octales proporcionan una forma compacta de representar
los nmeros binarios, de manera opuesta a utilizar una larga cadena de 0s (ceros) y
1s(unos). Por ejemplo, considere un nmero binario de 16 bits como se muestra a
continuacin:
0110110111110110
Para expresar lo mismo en el sistema octal, agrupamos los bits en 3 bits, cada uno
desde la derecha
0 110 110 111 110 110
Ahora, convertimos cada uno de estos grupos en dgitos decimales, como se muestra
a continuacin:
0 6 6 7 6 6
Por lo tanto, (0 110 110 111 110 110)
2
= (066766)
8
. En vez de escribir una
serie montona de 0s (ceros) y 1s(unos), podemos escribir un nmero octal ms
compacto, y la conversin es muy sencilla.
Adicionalmente, esto posee otra ventaja. Asumamos que nos dan un nmero octal
(057436)
8
. El equivalente binario de este nmero puede obtenerse fcilmente
convirtiendo cada dgito a forma binaria.
0 5 7 4 3 6
0 101 111 100 011 110
Fjese que el dgito octal ms a la izquierda se convierte solamente a un bit simple 0
1. Como se menciono anteriormente, los nmeros octales son frecuentemente
utilizados para lograr que la escritura sea ms fcil y compacta. Los ejemplos dados a
continuacin ilustran esta particularidad.
Ejemplo 4.4
Conversin de un nmero binario 1110101 a octal.
Paso 1: Agrupe los bits en 3 bits, cada uno desde la derecha.
01 110 101
Paso 2: Convierta los bits de cada grupo en un dgito octal.
Binario : 01 110 101
Octal : 1 6 5
Gustavo D-Modificado Oct 2012
De esta manera el byte anterior representa (165)
8.
Fin del Ejemplo 4.4



Ejemplo 4.5
Conversin de un nmero binario 11111111 a un nmero octal.
Paso 1: Agrupe los bits en porciones de 3 bits cada uno desde la derecha.
11 111 111
Paso 2: Convertir los bits de cada grupo en un dgito octal.
Binario : 11 111 111
Octal : 3 7 7
De esta manera, (11111111)
2
= (377)
8
.
Fjese que el byte contiene un 1(uno) en el bit de signo. Entonces, se trata de un
nmero negativo en la forma complementaria de dos. Esta ms all del alcance de
este curso, discutir como un sistema de nmeros octales representan enteros
negativos.
Fin del Ejemplo 4.5
Ejemplo 4.6
Conversin de un nmero binario de 16 bits binario a un nmero octal.
0111 0110 0000 0001
Paso 1: Agrupe los bits en tres bits cada uno desde la derecha.
0 111 011 000 000 001
Aqu, en el caso de 16 bits, el bit que se encuentra ms hacia la izquierda se dejar
solo, (para completar lo podramos haber escrito como 000).
Paso 2: Convertir cada grupo de 3 bits en un dgito octal.
Binario : 0 111 011 000 000 001
Octal : 0 7 3 0 0 1
Entonces, el equivalente octal es (073001)
8
. Un nmero binario de 16 bits siempre
tiene un equivalente octal de 6 dgitos.
Fin del Ejemplo 4.6
Ejemplo 4.7
Conversin de un nmero binario de 16 bits en la forma de complemento a dos, a un
nmero octal.
1000 1111 0101 0001
Paso 1: Dividir el nmero de 16 bits, en un grupo de tres empezando desde la
derecha.
1 000 111 101 010 001
Paso 2: Convertir cada grupo de 3 bits en un dgito octal.
Binario : 1 000 111 101 010 001
Gustavo D-Modificado Oct 2012
Octal : 1 0 7 5 2 1
Entonces, el equivalente octal del nmero binario de 16 bits es (107521)
8
.
Fin del Ejemplo 4.7
El nmero binario de 16 bits tena un 1 (uno) en el signo bit indicando que era un
nmero negativo.
3.2 El Sistema Hexadecimal
La base del sistema hexadecimal es 16. Entonces, el sistema posee 16 dgitos
validos. Ellos son 0,1,2,3,4,5,6,7,8 y 9 que constituyen los diez primeros
dgitos. Los otros seis dgitos son A,B,C,D,E y F representando los equivalentes
decimales de 10,11,12,13,14 y 15 respectivamente. Un nmero vlido
hexadecimal es una combinacin de uno o ms de los diecisis dgitos vlidos. Fjese
en el ejemplo mostrado a continuacin:
249
B34F
BAD
3FAD
FADE
Todos ellos son nmeros hexadecimales vlidos. Para evitar cualquier confusin, los
nmeros hexadecimales se escriben con subndice de 16 tal como (249)
16
. El
siguiente ejemplo nos muestra como descifrar la magnitud de un nmero hexadecimal
en la forma decimal.
Ejemplo 4.8
Conversin de un nmero hexadecimal (249)
16
en decimal.
(249)
16
= 2x16
2
+ 4x16
1
+ 9x16
0

= 2x256 + 64 + 9
= 512 + 64 + 9
= (585)
10
Fin del Ejemplo 4.8
Ejemplo 4.9
Conversin de un nmero hexadecimal (FADE)
16
en decimal.
(FADE)
16
= 15x16
3
+ 10x16
2
+ 13x16
1
+ 14x16
0

= 15x4096 + 2560 + 208 + 14
= 61440 + 2560 + 208 + 14
= (64222)
10
Fin del Ejemplo 4.9
As como en los nmeros octales, los nmeros hexadecimales son ms
frecuentemente usados en conjuncin con los nmeros binarios que por s solos.
Vamos a ver la relacin entre los dos sistemas de nmeros en el siguiente ejemplo.
Ejemplo 4.10
Un byte tiene la siguiente representacin
(00110101)
2
Paso 1: Ordene el grupo de 8 bits en grupos de 4 bits cada uno.
0011 0101
Gustavo D-Modificado Oct 2012
Paso 2: Convierta cada grupo en su equivalente hexadecimal.
Binario : 0011 0101
Hexadecimal : 3 5
Entonces, el equivalente hexadecimal del nmero binario 00110101 es (35)
16
.
Fin del Ejemplo 4.10
Ejemplo 4.11
Conversin del nmero binario (10111111)
2
en hexadecimal.
Paso 1: Agrupe los 8 bits en porciones de 4 bits cada uno.
1011 1111
Paso 2: Convertir cada grupo de 4 bits en su equivalente hexadecimal.
Binario : 1011 1111
Hexadecimal : B F
Entonces, el equivalente hexadecimal del nmero binario es (BF)
16
. El bit de signo en
el byte mostrado arriba es 1 indicando que es un nmero negativo. El nmero
hexadecimal (BF)
16
no tiene ninguna indicacin explcita de que es un nmero
negativo. nicamente su contraparte binaria revela que se trata de un nmero
negativo.
Fin del Ejemplo 4.11
4. Conversiones entre Sistemas: Sintetizando
El sistema decimal es el ms natural entre los sistemas de nmeros existentes. Hemos
visto en captulos anteriores que el sistema binario es utilizado en todos los sistemas
de computadoras modernas. Los programadores utilizan los sistemas octal y
hexadecimal para tener una representacin ms corta de los nmeros binarios.
Usualmente, puede ser necesario convertir un nmero de un sistema a otro. En esta
seccin se discute la conversin de un sistema a otro.
Hemos visto como convertir nmeros decimales a la forma binaria. Ahora discutiremos
esto una vez ms.
4.1 Conversin del Sistema Binario al Sistema Decimal
El procedimiento general para convertir un nmero binario a un nmero decimal es
expresar el nmero en potencia de dos como pesos posicionales. Existe otro mtodo
denominado el mtodo Double Babble, el cual hace conversiones ms rpidas.
4.2 Conversin de Decimal a Octal y de Octal a Decimal
Para convertir un nmero decimal a su equivalente octal, sucesivamente dividimos el
nmero decimal por 8 (el cual es la base del sistema octal) y extraemos los residuos
hasta que el cociente se convierta en cero. Los dgitos extrados como residuos
constituyen el nmero octal.
Un nmero octal puede ser convertido a su contraparte decimal utilizando el mtodo
de peso posicional en potencias de 8.
4.3 Conversin de Decimal a Hexadecimal y de Hexadecimal a Decimal
Esto es igual que la conversin de un decimal a un octal, excepto que la potencia 16
es utilizada en lugar de la potencia de 8.
Ambos, nmeros octales y hexadecimales pueden ser convertidos a su forma binaria,
convirtiendo cada dgito del nmero a su equivalente binario. Un nmero binario puede
Gustavo D-Modificado Oct 2012
convertirse en su forma octal o hexadecimal mediante la agrupacin de bits en grupos
de tres o cuatro respectivamente y encontrando su valor.
Ahora aprenderemos sobre la representacin de caracteres en sistemas de computo.
5. Representacin de Caracteres en el sistema Binario
Hemos visto como los nmeros son representados utilizando el sistema binario. Sin
embargo, las aplicaciones de computacin no slo requieren de nmeros, sino de
otros caracteres adicionales tales como las letras del alfabeto, caracteres de
puntuacin - !, ?, (, ), {, }, [, ], *, *, /, +, -, y otros. Por ejemplo, en una aplicacin
bancaria, el nombre del dueo de la cuenta puede estar almacenado en la
computadora, entre otras cosas. Estos caracteres tendrn que ser codificados en un
sistema binario y representado en la computadora.
5.1 Cdigo ASCII
La mayora de computadoras modernas utilizan el cdigo ASCII para representar
caracteres. ASCII son las siglas de American Standard Code for Information
Interchange. (Cdigo Estndar Americano para Intercambio de Informacin). Se trata
de un esquema de codificacin estandarizado para representar caracteres. Cada
carcter es codificado como un cdigo nico de siete bits, denominado el cdigo
ASCII. Estos siete bits pueden producir 2
7
= 128 patrones nicos de bits.
Consecuentemente, podemos representar exclusivamente 128 caracteres utilizando el
cdigo ASCII. Cada carcter es representado en un byte.
Mayormente, el cdigo ASCII es utilizado para leer desde dispositivos de entrada o
para imprimir hacia dispositivos de salida.
Vamos a asumir que nuestros nombres sern impresos desde un computador.
Entonces, el cdigo ASCII correspondiente a cada letra de nuestros nombres sern
enviadas a una impresora. En ASCII, la letra mayscula A es representada por el
nmero 65 y la letra minscula a es representada por el nmero 97. El resto del
alfabeto tiene nmeros consecutivos. As el nombre Anne ser almacenado en el
computador utilizando 4 bytes como sigue
65 110 110 101
lo cul en binario ser
01000001, 01101110, 01101110 y 01100101
respectivamente.
Pero no todos los cdigos ASCII pueden imprimirse. Muchos de ellos son cdigos que
corresponden a funciones de control especiales mas que a caracteres de salida en
forma imprimible. Por ejemplo, el cdigo ASCII 7 cuando es enviado a la unidad visual
de impresin usualmente produce un pequeo beep. Existen muchas funciones de
control requeridas por los dispositivos de entrada / salida. Por ejemplo, podemos tener
cierto cdigo ASCII para colocar el cursor en la parte superior izquierda del monitor.
Podemos usar otro cdigo ASCII para sacar un papel de una impresora. Una discusin
acerca de estos temas, sin embargo, esta fuera del alcance de este libro.
5.2 Cdigo EBCDIC
Antes de la formulacin del cdigo ASCII, no existan estndares especficos para
caracteres de codificacin y los fabricantes tenan, cada uno, sus propios esquemas
de codificacin. Como resultado de esto, las aplicaciones hechas en una computadora
rara vez trabajaban en una computadora de otro fabricante distinto.
Durante esos das caticos, IBM tomo el liderazgo de desarrollar un cdigo estndar
para representar caracteres. Empleo un cdigo de ocho bits, conocido como el cdigo
Gustavo D-Modificado Oct 2012
EBCDIC. EBCDIC significa Extended Binary Coded Decimal Interchange Code.
(Cdigo de Intercambio Decimal al Cdigo Binario Extendido). Por muchos aos, las
computadoras de IBM posean cdigo EBCDIC mientras que las computadoras de
otros fabricantes tenan varios otros cdigos.
Hoy en da, con el cdigo ASCII que se va convirtiendo en un estndar, las
computadoras de IBM tambin incluyen el cdigo ASCII. Sin embargo, computadoras
ms antiguas como la IBM 1130 y la serie 1800 todava tienen el cdigo EBCDIC.

You might also like