Esto es algo que los programadores tenemos que saber, y es la conversión de decimales a binario
Los números en binario están compuesto por 8 dígitos (en informática); y al igual que en el sistema DECINAL, los ceros a la izquierda no sirven, así que
00001001 = 1001
Aquí he realizado un proyecto en Visual Basic 6.0 con el fuente para realizar la conversión de decimal a binario: Proyecto: Decimal a Binario en Visual Basic 6.0
Basándonos en el sistema DECIMAL (10 números del 0 al 9), cada posición tiene un valor de unidades, por tanto:
CDU
129 = 100 unidades + 20 unidades + 9 Unidades
Viéndolo detenidamente, cada vez que el numero de la derecha, llega a 10 (la posición de las unidades) este DEBE ponerse de nuevo en 0, y el acumulado pasa a la siguiente posición como un 1 (1 decena que es el acumulado de las unidades)
es por eso que existen las decenas(10 unidades) las centenas (10 Decenas), los millares (10 centenas)
Note que por ser DECIMAL (10) el paso entre posición es a razón de 10 (de unidades a decenas x10, de decenas a centenas x10, etc.)
C | D | U |
100 | 10 | 1 |
1 | 2 | 9 |
C=Centenas; D=Decenas; U=Unidades
En el sistema BINARIO ocurre lo mismo, pero por ser binario, solo puede hacer 2 números (0 y 1) así que cuando el numero de unidades ya está en 1 y le sumamos 1 más, seria un 2, y eso movería el contador de la siguiente posición (en decimal, seria el equivalente a estar en 9 y sumarle 1, así que se escribe 10)
1 en binario seria = 1 = 001 (recuerden que los ceros a la izquierda no sirven)
2 en binario seria = 10 = 010
3 en binario seria = 11 = 010
4 en binario seria = 100
5 en binario seria = 101
6 en binario seria = 110
Si lo observamos detenidamente, la razón para pasar de posición en posición en posición es de x2 (recuerden que en DECIMAL es por x10)
así que tendríamos esto:
VP = 4 | VP = 2 | VP=1 |
0 | 0 | 1 |
0 | 1 | 0 |
0 | 1 | 1 |
1 | 0 | 0 |
1 | 0 | 1 |
1 | 1 | 0 |
VP= Valor decimal en esa posición
Aquí es cuando jugamos con los números 😉 si se dan cuenta, en el decimal, (CDU) la posición del número se multiplica por el Valor de su posición, y en el caso de los decimales, es más fácil porque 1 x por lo que sea es el valor de lo que sea, y 0 x algo = 0
001 seria =0x4 + 0x2 + 1×1 = 1
010 seria =0x4 + 1×2 + 0x1 = 2
011 seria =0x4 + 1×2 + 1×1 = 3
100 seria =1×4 + 0x2 + 0x1 = 4
101 seria =1×4 + 0x2 + 1×1 = 5
110 seria =1×4 + 1×2 + 0x1 = 6
Haciendo una tabla más grande
Como ya mencioné, la razón es x2, así que nuestra tabla sería
Valor de posición= | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
Y aquí Jugamos a las restas 😀
vamos a convertir el numero 10 de decimal a binario y para eso jugamos con el numero que sea igual o el menor próximo, en el caso del 10 el menor próximo es el 8, así que ponemos un 1 en la cuarta posición, y jugamos con el RESTO, ósea 2… y el 2 cae exacto en la segunda posición… así que nos quedaría así: (rellena con CEROS el resto de espacios
Valor de posición= | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
0 | 0 | 0 | 0 | 1 | 0 | 1 | 0 |
10 decimal = 1010b
Un número más grande: 207, en la tabla, el inferior mas próximo es 128, así que hacemos
- Restando: 207-128 = 79 y ponemos un 1 debajo del 128 en la tabla
- Ahora con 79: 79-64 = 15 y ponemos un 1 debajo del 64 en la tabla
- Ahora con 15: 15-8 = 7 y ponemos un 1 debajo del 8 en la tabla
- Ahora con 7 : 7-4 = 3 y ponemos un 1 debajo del 4 en la tabla
- Ahora con 3: 3-2 = 1 y ponemos un 1 debajo del 2 en la tabla
- Y como nos queda el 1, pues lo ponemos en su posición
así nos queda la Tabla
Valor de posición= | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
1 | 1 | 0 | 0 | 1 | 1 | 1 | 1 |
207 decimal = 11001111b
Observación: Los números BINARIOS tienen un máximo de 8 dígitos (en informática) por tanto el número máximo será 11111111b = 255 (no les parece familiar ese numero 🙂 )
Pasar de decimal a Binario por favor
Aqui el Codigo fuente en Visual Basic donde puedes ver como pasar de Decimal a Binario
http://www.elcodigofuente.com/proyecto-decimal-a-binario-en-visual-basic-6-0-378/
y que pasaria con el 171.25??
por ejemplo, si realizo el 171, por medio de esa tabla, porque lo he intentado diviendo y me quedo atascado…
por cierto, el truco de la tabla lo voy a practicar, muy bueno
salu2
y se puede aplicar ese metodo cuando se trata de octales, hexadecimales y otras bases como 5, 6???
explicame porfa