Sistemas de Numeración I


Sistema Binario

El sistema binario con sus dos dígitos es un sistema en base dos.
Los dígitos binario (bits) son 0 y 1.

Sistema Decimal a Sistema Binario

Existen dos formas de pasar un número entero del sistema decimal a sistema binario.

I FORMA: Pesos o Factores de Ponderación

Primero vamos escribiendo potencias de 2 hasta hallar un número mayor al que queremos convertir a base 2, los escribimos de la siguiente manera.

...  29      28      27    26     25     24    23     22      21     20
... 512   256   128   64     32     16     8       4       2      1

Seguidamente empezamos a restar, sea el número N, a N le restamos por ejemplo el 512, si se puede se resta, si no se puede, se pasa al siguiente número, lo mismo que si se resta, en ese caso, se trabaja con el resultado, así sucesivamente hasta que el resultado de la resta sea 0.
Veamos un ejemplo: Convertir el número 987 que está en base 10 a un número en base 2.
Como se explicó anteriormente, escribimos los factores de ponderación.


1024     512     256     128      64        32       16        8         4          2         1

Y empezamos a restar

987 - 512 = 475
475 - 256 = 219
219 - 128 = 91
91 - 64 = 27


En este caso al 27 no le podemos restar el 32, de tal manera que quede un entero positivo, así que pasamos al 16.
 

27 - 16 = 11
11 - 8 = 3
3 - 2 = 1
1 - 1 = 0


Ahora ponemos un '1' debajo de cada factor usado, y lo demás lo completamos con '0'.

1024     512     256     128      64        32       16        8         4          2         1
0           1         1         1           1          0        1          1         0          1         1

De modo que 987(10) = 1111011011(2)

II FORMA: Divisiones Sucesivas

Si deseamos convertir un número N en base 10 a un número M en base 2.
Dividimos N entre 2, y el resultado entre 2 y así sucesivamente.
Luego unimos el cociente y los residuos en un solo número, como se muestra a continuación.
Veamos un ejemplo: Convertir el número 987 que está en base 10 a un número en base 2.
Primero realizamos las divisiones sucesivas.
Seleccionamos el ultimo cociente, seguido del último residuo, seguido del residuo anterior, seguido del residuo anterior, y así sucesivamente hasta llegar al primer residuo.
De modo que 987(10) = 1111011011(2)
Lo visto anteriormente, es aplicado para números totalmente enteros, a continuación, veremos cómo convertir un número decimal en base 10 a base 2.

I CASO: Conversión de un número decimal en base 10 a base 2 SIN PARTE ENTERA

Sea un número N de la forma 0, abcde... un número decimal en base 10.
Lo que se hace es multiplicar el número N por 2, luego, de su resultado, multiplicamos la parte decimal por 2, y así, sucesivamente hasta que no quede nada en la parte decimal del número.
Luego seleccionamos las partes enteras de las multiplicaciones realizadas, y escribiéndolo luego de un '0, ' obtenemos el resultado.
Veamos un ejemplo: Convertir el número 0, 6875 que está en base 10 a un numero en base 2.
Primero realizamos las multiplicaciones por 2.

0, 6875 x 2 = 1, 3750
0, 3750 x 2 = 0, 7500
0, 7500 x 2 = 1, 5000
0, 5000 x 2 = 1, 0000

A continuación, seleccionamos las partes enteras y las escribimos luego de un '0. ' tal y como las fuimos hallando.
Por lo que 0, 6875(10) = 0, 1011(2)

II CASO: Conversión de un número decimal en base 10 a base 2 CON PARTE ENTERA

Se un número N de la forma a, bcdef... un número decimal en base 10.
En este caso la conversión del número se trabaja en dos partes:

PARTE ENTERA

Como se explicó al inicio, mediante factores de ponderación o divisiones sucesivas.

PARTE DECIMAL

Tal y como se explicó en la conversión de un número decimal en base 10 a base 2 SIN PARTE ENTERA.
Para obtener el número final escribimos lo obtenido de la conversión del entero, luego una coma seguida del número obtenido en la conversión de la parte decimal.
Veamos un ejemplo: Convertir el número 3895. 0625 que está en base 10 a un número en base 2.
Primero hacemos la conversión del entero, en este caso emplearé los factores de ponderación.

4096   2048   1024   512    256    128    64     32     16      8      4       2      1
0         1         1        1        1         0        0       1       1        0      1       1      1

0. 0625 x 2 = 0. 1250 
0. 1250 x 2 = 0. 2500
0. 2500 x 2 = 0. 5000
0. 5000 x 2 = 1. 0000

A continuación, seleccionamos, primero lo obtenido de la conversión de la parte entera, seguido una coma y luego lo obtenido de la conversión de la parte decimal.
Por lo que 3895, 0625(10) = 1111 0011 0111, 0001(2)

Sistema Binario a Sistema Decimal

Del mismo modo que podemos convertir un número de base 10 a un número de base 2, también podemos convertir un número de base 2 a un número de base 10. 
Si tenemos un número decimal en base 2, lo que se hace es trabajar en dos partes:

PARTE ENTERA

Sea un numero de la forma ....fedcba, cada dígito se va a ir multiplicando por potencias de 2. Es decir ax20, bx21, cx22, dx23, ex24, fx25, y así sucesivamente. Todas las multiplicaciones se suman, obteniendo de esta manera la parte entera del número.

PARTE DECIMAL

Sea un numero de la forma 0, abcdef, cada dígito se va a ir multiplicando por potencias de 2, pero en este caso, con exponentes NEGATIVOS. Es decir ax2-1, bx2-2, cx2-3, dx2-4, ex2-5, fx2-6, y así sucesivamente. Todas las multiplicaciones se suman, obteniendo de esta manera la parte entera del número. Veamos un ejemplo: Convertir el número 1001101101, 011011 que está en base 2 a un número en base 10. Primero convertimos la parte entera. 

1001101101 --> 1x29 + 0x28 + 0x27 + 1x26 + 1x25 + 0x24 + 1x23+1x22+0x21+1x20  
1001101101 --> 1x512+0x256+0x128+1x64+1x32+0x16+1x8+1x4+0x2+1x1  
1001101101 --> 512+0+0+64+32+0+8+4+0+1  
1001101101 --> 621

Ahora convertimos la parte decimal.

011011 --> 0x2-1+1x2-2+1x2-3+0x2-4+1x2-5+1x2-6
011011 --> 0 + 2-2 + 2-3 + 0 + 2-5 + 2-6
011011 --> 0 + 1/22 + 1/23 + 0 + 1/25 + 1/26
011011 --> 0 + 1/4 + 1/8 + 0 + 1/32 + 1/64
011011 --> 0 + 0,25 + 0,125 + 0 + 0,0313 + 0,015625
011011 --> 0,421875

Finalmente unimos ambos resultados, poniendo una coma entre ambos y obtenemos el resultado final.
Por lo que 1001101101,011011(2) = 621,421875(10)

APRENDER MÁS

https://programacion-js.blogspot.com/p/clases.html

Comentarios

Popular Posts

Sistemas Distribuidos - Tolerancia a fallos

Crear Autómata Finito Determinista desde una Expresión Regular

Instalar OpenGL en Linux