Sistemas de Numeración y conversiones

Transcription

Sistemas de Numeración y conversiones
SISTEMAS NUMÉRICOS (SISTEMAS DE NUMERACIÓN)
INTRODUCCIÓN
Desde hace mucho tiempo, el hombre en su vida diaria se expresa, comunica, almacena información, la manipula, etc.
mediante letras y números. Para la representación numérica utiliza el sistema de representación decimal, en tanto que,
dependiendo del idioma, dispone de un alfabeto que representa estas letras.
Siguiendo el mismo principio que guía al hombre, las computadoras tienen su propio sistema de representación. Debido a
su construcción basada fundamentalmente en circuitos electrónicos digitales, utiliza un sistema binario. Esto obliga a
transformar la representación de nuestra información, tanto numérica como alfanumérica, a una representación binaria
para que la máquina sea capaz de procesarlos.
Como veremos más adelante, tanto el sistema decimal como el binario están basados en los mismos principios. En ambos,
la representación de un número se efectúa por medio de cadenas de símbolos, los cuales representan una determinada
cantidad dependiendo de cada símbolo y la posición que ocupa dentro de la cadena con respecto al denominado punto (o
coma) decimal.
Por cuestiones de índole técnica, los circuitos electrónicos que conforman una computadora suelen estar capacitados para
reconocer señales eléctricas de tipo digital; por lo tanto, se hace necesario que los métodos de codificación internos tengan
su origen en el sistema binario, y con ellos se pueda representar todo tipo de informaciones y órdenes que sean
manejadas por la computadora. En los circuitos electrónicos suele representarse la presencia de tensión (electricidad) en
un punto de un circuito por medio de un 1, en tanto que 0 representa la ausencia de dicha tensión.
EL SISTEMA DECIMAL.
Desde hace muchos años, el hombre ha utilizado como sistema para contar el denominado decimal, que derivó del sistema
numérico indoarábigo; posiblemente se adopté este mismo por contar con diez dedos en las manos.
El sistema decimal es uno de los denominados sistemas posicionales, utilizando un conjunto de símbolos cuyo significado
depende fundamentalmente de su posición relativa al símbolo coma (.), denominado coma decimal, que en caso de
ausencia se supone colocada implícitamente a la derecha. Utiliza como base el 10, que corresponde al número de
símbolos que comprende para la representación de cantidades; estos símbolos (también denominados dígitos) son:
0
1
2
3
4
5
6
7
8
9
Una determinada cantidad, que denominaremos número decimal, se puede expresar de la siguiente forma,
Donde:
base
i
d
n
dígito
=
=
=
=
=
10
posición respecto a la coma,
número de dígitos a la derecha de la coma,
número de dígitos a la izquierda de la coma -1,
cada uno de los que componen el número.
Esta fórmula corresponde al Teorema Fundamental de la Numeración y, por tanto, corresponde a la representación:
....+X4*104+X3*103+X2*102+X1*101 +X0*100+
+X-1*10-1 +X-2*10-2...
Por ejemplo, la representación de las cantidades 1992 y 3,1416 es:
1992 = 1 * 103 + 9*102 + 9*101 + 2* 100
3.1416 = 3 * 100 + 1 * 10—1 + 4* 10—2 + 1 * 10-3 + 6* 10-4
1
TEOREMA FUNDAMENTAL DE LA NUMERACION (TFN)
Se trata de un teorema que relaciona una cantidad expresada en cualquier sistema de numeración con la misma cantidad
expresada en el sistema decimal.
Supongamos una cantidad expresada en un sistema cuya base es B y representamos por 1 cada uno de los dígitos que
contiene dicha cantidad, donde el subíndice indica la posición del dígito con respecto a la coma decimal, posición que hacia
la izquierda de la coma se numera desde 0 en adelante y de 1 en 1, y hacia la derecha se numera desde -1 y con
incremento -1.
El Teorema Fundamental de la Numeración dice que el valor decimal de una cantidad expresada en otro sistema de
numeración, viene dado por la fórmula:
...+X4*B4 + X3*B3 + X2*B2 + X1*B1 + X0*B0 + X-1*B1 + X-2*B-2 +X-3*B3
+...
EJEMPLO. Supongamos la cantidad 201.1 expresada en el sistema de numeración de base 3 que utiliza los dígitos para la
representación de cantidades 0, 1 y 2. ¿Cuál será la representación de la misma cantidad en el sistema decimal?
2*32+ 0*31 + 1*30+ 1*3-1 = 18+0+1+0.333=19.333
El teorema aplicado a la inversa nos sirve para obtener la representación de una cantidad decimal en cualquier otra base,
por medio de divisiones sucesivas por dicha base.
EL SISTEMA BINARIO.
Es el sistema de numeración que utiliza internamente el hardware de las computadoras actualmente es el binario, por ello
será el sistema al que prestaremos mayor atención y estudio. Se basa en la representación de cantidades utilizando los
dígitos 1 y 0. Por tanto, su base es 2 (número de dígitos del sistema). Cada dígito de un número representado en este
sistema se denomina bit (contracción de binary digit).
Se suelen utilizar con nombre propio determinados conjuntos de dígitos en binario:

Ocho bits octeto o byte (Ejemplo: 10010110).

Al conjunto de 1 024 bytes se le llama kilobyte o simplemente K.

1024 kilobytes forman el llamado megabyte.

1024 megabytes se denomina gigabyte.

1024 gigabytes se denomina terabyte.
EJEMPLO. ¿Qué número decimal representa el número binario 1001.1 utilizando el TFN?
1*23 + 0*22 + 0*21 + 1*20 + 1*2-1 = 8 + 0 + 0 + 1 + 0.5 = 9.5
Suma binaria. Es semejante a la suma en el sistema decimal, con la diferencia de que se manejan sólo 2 dígitos (0 y 1),
y que cuando el resultado excede de los símbolos utilizados se agrega el exceso (acarreo) a la suma parcial siguiente hacia
la izquierda. Las tablas de sumar son:
Tabla del 0  0 + 0 = 0
Tabla del 1  1 + 0 = 1
0+1=1
1 + 1 = 10 (0 con acarreo 1)
Resta binaria. La resta binaria es similar a la decimal con la diferencia de tener sólo 2 dígitos y que al realizar las restas
parciales entre 2 dígitos, uno del minuendo y otro del sustraendo, si el segundo excede al primero, se sustrae una unidad
del dígito de más a la izquierda en el minuendo (si existe y vale 1), convirtiéndose este último en 0 y equivaliendo la
unidad extraída a 1 * 2 en el minuendo de resta parcial que estamos realizando. Si es 0 el dígito siguiente a la izquierda,
se busca en los sucesivos teniendo en cuenta que su valor se multiplica por 2 a cada desplazamiento a la derecha. Las
tablas de restar son las siguientes:
Tabla del 0 
Tabla del 1 
0–0 =0
1- 0 =1
0 - 1 = no cabe
1 -1 =0
Multiplicación binaria. Se realiza de forma similar a la multiplicación decimal, salvo que la suma final de los productos
parciales se hace en binario. Las tablas de multiplicar son:
Tabla del 0 
Tabla del 1 
0*0=0
1*0=0
0*1=0
1*1=1
2
EL SISTEMA OCTAL.
Es un sistema de numeración cuya base es 8, es decir, utiliza 8 símbolos para la representación de cantidades. Estos
símbolos son:
0
1
2
3
4
5
6
7
Este sistema también es de los llamados posicionales y la posición de sus cifras se mide con relación a la coma decimal
que en caso de no aparecer se supone implícitamente a la derecha del número. La aritmética en este sistema es similar a
la de los sistemas decimal y binario, por lo que no entramos en su estudio.
EJEMPLO. ¿Qué número decimal representa el número octal 4701 utilizando el TFN?
4 * 83 + 7 * 82 + 0*81 + 1*80 = 2048 + 448 + 0 + 1 = 2497
EL SISTEMA HEXADECIMAL.
Es un sistema posicional de numeración en el que su base es 16, por tanto, utilizará 16 símbolos para la representación de
cantidades. Estos símbolos son:
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
Se le asignan los siguientes valores absolutos a los símbolos A, B, C, D, E y F:
Símbolo
A
B
C
Valor absoluto
10
11
12
Símbolo
D
E
F
Valor absoluto
13
14
15
Su aritmética es similar a los anteriores.
EJEMPLO. ¿Qué número decimal representa el número hexadecimal 2CA utilizando el TFN?
2*162 + C*161 + A*160 =
2*162 + 12*161 + 10*160 = 512 + 192 + 10 = 714
3
CONVERSIONES ENTRE SISTEMAS DE NUMERACIÓN
Conversión decimal-binario. Para convertir números enteros de decimal a binario, la forma más simple es dividir sucesivamente el número decimal y los cocientes que se van obteniendo por 2, hasta que el cociente en una de las divisiones
sea menor que la base. La unión de todos los restos obtenidos escritos en orden inverso nos proporciona el número inicial
expresado en el sistema binario.
EJEMPLOS. Convertir el número decimal 10 a binario.
10(10) = 1010(2)
10  2
0 5 2
1
2 2
0
1
Conversión de una fracción decimal a binario. La forma más simple consiste en multiplicar dicha fracción por 2,
obteniendo en la parte entera del resultado el primero de los dígitos binarios de la fracción binada que buscamos. A
continuación repetimos el mismo proceso con la parte fraccionaria del resultado anterior, obteniendo en la parte entera del
nuevo resultado el segundo de los dígitos buscados. Iteraremos sucesivamente de esta forma, hasta que desaparezca la
parte fraccionaria o hasta que tengamos los suficientes dígitos binarios que nos permitan no sobrepasar un determinado
error.
EJEMPLOS: Convertir la fracción decimal 0.828125 en
0.828125
0.65625
0.3125
0.625
0.25
0.5
fracción binaria.
*
2
=
1.65625
*
2
=
1.3125
*
2
=
0.625
*
2
=
1.25
*
2
=
0.5
*
2
=
1
0.828125(10) = 0.110101(2)
Convertir la fracción decimal 0.333 en fracción binaria.
0.333
*
2
0.666
*
2
0.332
*
2
0.664
*
2
0.328
*
2
0.656
*
2
0.312
*
2
0.624
*
2
0.248
*
2
0.496
*
2
0.992
*
2
0.984
*
2
=
=
=
=
=
=
=
=
=
=
=
=
0.666
1.332
0.664
1.328
0.656
1.312
0.624
1.248
0.496
0.992
1.984
1.968
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
0.333(10) = 0.010101010011(2) con error inferior a 2-12
EJEMPLO. Conversión de un número decimal con parte entera y fraccionaria aplicando los dos métodos anteriores.
Convertir a binario el número decimal: 350.765625. Tomamos por separado la parte entera y la parte fraccionaria
pasándolas a binario y al final las unimos para configurar el resultado buscado:
Parte entera:
Parte fraccionaria:
350  2
0 175  2
1 87  2
1
43  2
1
21  2
1 10  2
0
5 2
1
2
0
0.765625
0.53125
0.0625
0.125
0.25
0.5
2
1
*
*
*
*
*
*
2
2
2
2
2
2
=
=
=
=
=
=
1.53125
1.0625
0.125
0.25
0.5
1
0.765625(10) = 110001(2)
350(10) = 101011110(2)
Por consiguiente, el número decimal 350.765625 es el número binario: 101011110.110001
4
Conversión binario-decimal. Método para convertir números binarios enteros a decimal. El método consiste en
reescribir el número binario en posición vertical de tal forma que la parte de la derecha quede en la zona superior y la
parte de la izquierda quede en la zona inferior. Se repetirá el siguiente proceso pan cada uno de los dígitos comenzando
por el inferior: Se suma el dígito al producto de 2 por el resultado de la operación anterior, teniendo en cuenta que para el
primer dígito, el resultado de la operación anterior es 0. El resultado será el obtenido en la última operación.
EJEMPLO: Convertir en decimal el número binario 101011.
Posiciones
5
Dígitos
1
Conversión 1 * 25
Resultado
32
Luego tendremos que
4
0
0 * 24
0
3
1
1 * 23
8
2
0
0 * 22
0
1
1
1 * 21
2
0
1
1 * 20
1
101011(2) = 32 + 8 + 2 + 1 = 43(10)
EJEMPLO: Convertir en decimal el número binario 11111001000.
Posiciones
10
9
8
7
6
5
4
3
2
1
0
Dígitos
1
1
1
1
1
0
0
1
0
0
0
Conversión 1*210 1*29 1*28 1*27 1*26 0*25 0*24 1*23 0*22 0*21 0*20
Resultado 1024 512 256 128 64
0
0
8
0
0
0
Por tanto,
11111001000(2) = 1024 + 512 + 256 + 128 + 64 + 8 = 1992(10)
EJEMPLO. Convertir a decimal el número binario 11.001001.
Posiciones
1
0
Dígitos
1
1 .
1
Conversión 1*2 1*20
Resultado 2
1
-1
0
0*2-1
0
-2
0
0*2-2
0
-3
1
1*2-3
0.125
-4
0
0*2-4
0
-5
0
0*2-5
0
-6
1
1*2-6
0.015625
Por tanto 11.001001 = 2 + 1 + 0.125 + 0.015625 = 3.140625
El error cometido en la conversión del número 3.1416 es menor que 0.001. Veamos: 3.1416 — 3.140625 = 0.000975
EJEMPLO. Convertir a decimal el número binario 111.111.
Posiciones
Dígitos
Conversión
Resultado
2
1
1 * 22
4
1
1
1 * 21
2
0
1
1 * 20
1
-1
.
1
1 * 2-1
0.5
-2
1
1 * 2-2
0.25
-3
1
1 * 2-3
0.125
Por tanto, 111.111 = 4 + 2 + 1 + 0.5 + 0.25 + 0.125 = 7.875
Este método es aplicación directa del Teorema Fundamental de la Numeración.
5
Conversión decimal-octal.
Método de las divisiones sucesivas por 8. Se utiliza para convertir números decimales enteros a octal y consiste en dividir
el número y sus sucesivos cocientes obtenidos por 8 hasta llegar a una división cuyo cociente sea menor que la base. El
número octal buscado es el compuesto por todos los restos obtenidos escritos en orden inverso a su obtención.
EJEMPLO. Convertir el número decimal 500 a octal.
EJEMPLO. Convertir el número decimal 1992 a octal.
500  8
4 62  8
6
7
1992 8
0 249 8
1 31  8
7
3
500(10) = 764(8)
1992(10) = 3710(8)
Multiplicaciones sucesivas por 8. Se utiliza para pasar a octal una fracción decimal. Se toma la fracción decimal y se
multiplica por 8, obteniendo en la parte entera del resultado el primer dígito de la fracción octal resultante y se repite el
proceso con la parte decimal del resultado para obtener el segundo dígito y sucesivos. El proceso termina cuando
desaparece la parte fraccionaria del resultado o dicha parte fraccionaria es inferior al error máximo que deseamos obtener.
EJEMPLO. Convertir en fracción octal la fracción decimal 0.140625.
0.140625
0.125
*
*
8
8
=
=
1.125
1.0
0.140625(10) = 0.11(8)
Combinando los dos métodos se pueden pasar números decimales con parte entera y decimal a su equivalente octal.
Conversión octal-decimal. Existen varios métodos, siendo el más generalizado el indicado por el TFN que hace la
conversión en forma directa por medio de la fórmula.
EJEMPLO. Pasar el número octal 764 a decimal.
764(8) = 7 * 82 + 6 * 81 + 4*80 = 448 + 48 + 4 = 500(10)
6
Conversión decimal-hexadecimal. Método de las divisiones sucesivas por 16. Sirve para convertir números decimales
enteros a hexadecimal. Se divide el número decimal y los cocientes sucesivos por 16 hasta obtener un cociente menor que
la base. El número hexadecimal buscado será el compuesto por todos los restos obtenidos en orden inverso a su
obtención.
EJEMPLO. Pasar el número decimal 1000 a hexadecimal.
1000 16
8 62 16
14
3
1000(10) = 3E8(16)
Método de las multiplicaciones sucesivas por 16. Convierte números decimales con parte decimal a fracción
hexadecimal. La fracción decimal se multiplica por 16, obteniendo en la parte entera del resultado el primer dígito de La
fracción hexadecimal buscada y se repite el proceso con la parte fraccionaria de este resultado. El proceso se acaba
cuando la parte fraccionaria desaparece o hemos obtenido un número de dígitos que nos permita no sobrepasar el máximo
error que deseemos obtener.
EJEMPLO. Pasar a hexadecimal la fracción decimal 0.06640625.
0.06640625
*
16
0.0625
*
16
=
=
1.0625
1.0
0.06640625(10) = 0.11(16)
Combinando los dos métodos anteriores podemos convertir números decimales con parte entera y fraccionaria a
hexadecimal.
Conversión hexadecimal – decimal. Existen varios métodos, siendo el más utilizado el que nos ofrece el TFN que nos
da el resultado por aplicación directa de la fórmula.
EJEMPLO. Convertir el número hexadecimal 3E8 en decimal.
3E8(16) = 3*162 + E*161 + 8*160 = 3*162 + 14*161 + 8*160 = 768 + 224 + 8 = 1000 (10)
7
Conversión hexadecimal-binario. Para convertir un número hexadecimal a binario, se sustituye cada dígito hexadecimal
por su representación binaria con cuatro dígitos según la tabla.
HX
0
1
2
3
BIN
0000
0001
0010
0011
HX
4
5
6
7
BIN
0100
0101
0110
0111
HX
8
9
A
B
BIN
1000
1001
1010
1011
HX
C
D
E
F
BIN
1100
1101
1110
1111
EJEMPLO. Pasar el número hexadecimal 2BC a Pasar a binario el numero hexadecimal 7BA3.BC
binario.
2
0010
Luego
B
1011
C
1100
7
0111
2BC(16) = 1010111100(2)
Luego
B
1011
A
1010
3
0011
B
1011
C
1100
7BA3.BC(16) = 111101110100011.101111(2)
Conversión binario-hexadecimal. Para convertir números de binario a hexadecimal, se realiza el proceso inverso al
anterior. Se agrupan los dígitos binarios de 4 en 4 a partir del punto decimal hacia la izquierda y hacia la derecha,
sustituyendo cada cuarteto por su correspondiente dígito hexadecimal.
Convertir
el
hexadecimal.
0001
1
Por tanto,
número
0010
2
binario
100101100
1100
C
100101100(2) = 12C(16)
a Convertir 1100101001000.1011011 a hexadecimal:
0001
1
Luego
1001
9
0100
4
1000
8
•
1011
6
0110
6
1100101001000.1011011(2)=1948.B6(16)
8
Conversión octal-binario. Para convertir un número octal en binario se sustituye cada dígito octal por sus correspondientes tres dígitos binarios según la tabla.
Octal
binarios
0
000
1
001
2
010
3
011
4
100
5
101
6
110
7
111
Convertir el número octal 1274 en binario.
1
001
Luego
2
010
7
111
4
100
1274(8) = 1010111100(2)
Convertir 75643.57 de octal a binario.
7
111
5
101
Por tanto,
6
110
4
100
3
011
.
.
5
101
7
111
75643.57(8) =111101110100011.101111(2)
Conversión binario-octal. Para convenir un número binario a octal se realiza un proceso inverso al anterior. Se agrupan
los dígitos binarios de 3 en 3 a partir del punto decimal hacia la izquierda y hacia la derecha, sustituyendo cada trío de
dígitos binarios por su equivalente dígito octal.
Convertir el número binario 1010111100
en octal.
001
1
Luego,
010
2
111
7
100
4
1010111100(2) = 1274(8)
Convertir 1100101001000.1011011 en octal.
001
1
Luego,
100
4
101
5
001
1
000
0
.
.
101
5
101
5
100
4
1100101001000.1011011(2) =14510.554(8)
9
Conversión octal-hexadecimal. Esta conversión realiza un paso intermedio utilizando el sistema binario. Primero se
convierte el número octal en binario y éste se pasa a hexadecimal.
Convertir el número octal 144 en hexadecimal.
Paso 1: Convertirlo a binario.
1
001
4
100
Paso 2: Ahora de binario se convierte a hexadecimal.
4
100
0110
6
144(8) = 1100100(2)
0100
4
1100100(2) = 64(16)
Por consiguiente,
144(8) = 64(16)
Conversión hexadecimal-octal. Esta conversión, al igual que la anterior, realiza un paso intermedio utilizando el
sistema binario. Se conviene el número hexadecimal en binario y éste en octal.
Convertir el número hexadecimal 1F4 en octal.
Paso 1: Convertirlo a binario.
Paso 2: Ahora de binario se convierte a octal.
1
F
4
0001 1111 0100
111 110 100
7
6
4
1F4(16) = 111110100(2)
111110100(2) = 764(8)
Por tanto,
1F4(16) = 764(8)
-------------------------------------- FIN DEL DOCUMENTO
10