No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

No se trata de lo que quieres comprar, sino de quién quieres ser. Aprovecha el precio especial.

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

14 Días
9 Hrs
7 Min
31 Seg

Conversión entre binario y decimal

4/17
Recursos

Los procesos de conversión entre binario y decimal, se hacen utilizando 2 de las operaciones aritméticas más utilizadas en el día a día, estas son multiplicación y división.

¿Como convertir un número decimal a binario?

Para convertir un número decimal a binario, hay que realizar una serie de divisiones continuas entre 2 y escribir los distintos resultados de las divisiones en orden inverso al que se obtuvieron. Como se puede ver en la siguiente imagen.

Inkedconversion-de-decimal-a-binario.jpg

En el proceso de conversión, se debe coger el número decimal que se desea convertir y dividirlo hasta que el divisor (2), sea mayor al dividendo (El número que se desea dividir).

Convirtiendo un número binario en un número decimal

Una de las formas en la que se puede convertir un número binario a un número decimal es a través de los siguientes pasos:

En este ejemplo vamos a partir del mismo número con el que se hizo la conversión anterior, este es el 11100. Recordemos que la representación de este número binario en el sistema decimal es el 28.

  1. Se cogen los decimales del número binario de derecha a izquierda, se colocan en forma vertical y cada dígito se multiplica x2.
Números Operador Multiplicador
0 * 2
0 * 2
1 * 2
1 * 2
1 * 2
  1. cada una de las unidades del sistema binario será la potencia del 2 que le pertenece.
Números Operador Multiplicador
0 * 2^0
0 * 2^1
1 * 2^2
1 * 2^3
1 * 2^4
  1. Se hacen las operaciones de las potencias.
Números Operador Multiplicador OP
0 * 2^0 1
0 * 2^1 2
1 * 2^2 4
1 * 2^3 8
1 * 2^4 16
  1. Los resultados de la potencia se multiplican por el decimal que lo compone
Números Operador Multiplicador OP Productos
0 * 2^0 1 0
0 * 2^1 2 0
1 * 2^2 4 4
1 * 2^3 8 8
1 * 2^4 16 16

En este caso se están multiplicando las columnas, números y multiplicación.

  1. Se suman los productos de las multiplicaciones y el resultado es el número decimal equivalente al binario que se está convirtiendo.
Números Operador Multiplicador OP Productos
0 * 2^0 1 0
0 * 2^1 2 0
1 * 2^2 4 4
1 * 2^3 8 8
1 * 2^4 16 16
28

Reto de la clase

Escoge dos números del sistema decimal y pásalos al sistema binario. Una vez logres hacerlo, escoge dos números del sistema binario y pásalos a decimal.

¡Te invitamos a que nos compartas en la sesión de comentario tu resultado al reto de la clase!

Contribución del curso creada por: Silfredo Ibarra.

Aportes 717

Preguntas 89

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

⚡👉 Mi resumen

🌈 Hacks para convertir números decimales y binarios 🌈


  • A binariosdivide el número cuantas veces se pueda entre 2

    • Cuando el producto sea impar será equivalente a 1
      30/2 = 15 ➡️ 1
    • Cuando el producto sea par será equivalente a 0
      20/2 = 10 ➡️ 0

    · Cuando el número sea > 2 sabrás que ya has terminado
    · Para leer el resultado ve desde el último número al primero (de la última división a la primera) ↖️

  • A decimalesmultiplica cada uno de los números x 2 y sus potencias según su posición de derecha a izquierda ↩️

    · Si el número es 11100 entonces la posición 0 es el último0 -> 0 · 2^0
    · Luego suma los resultados de las multiplicaciones

¡Mi práctica!
Hace 10 años lo aprendí, cuesta mucho volver a entender el concepto y práctica para hacerlo, pero excelente clase.

Convertí mi año de nacimiento 😃

Mi aporte 😃


Proceso binari
Definir n, x, binario Como Real;
Escribir “dame un numero”;
Leer n;
x = 1;
Escribir "El numero “,n,” convertido a binario es"
Mientras n >= 1 Hacer
si n mod 2 == 1 Entonces
binario = binario + x
FinSi
n = trunc(n/2)
x = x * 10
FinMientras
Escribir binario
FinProceso

Number to binary in JS

Sacando el JS a relucir 👀

const positiveIntegerToBinary = (input) => {
  if (input === 0) return '0';

  const bits = [];
  
  let number = input;
  while (number >= 1) {
    const divResult = number / 2;
    const roundedResult = Math.floor(divResult);
    
    bits.push(divResult > roundedResult ? 1 : 0);
    
    number = roundedResult;
  }

  return bits.reverse().join('');
}

Me encanta este sistema con esta tabla, es mas practico

CON 77

Al dividir el 77 en 2, te queda 38 + un resto un 1 y por tanto te queda cómo numero final en binario el 1.

Luego como el 38 es divisible por 2, no te queda resto, dejando un 0.

77 = (…01)

Comparto mis ejercicios incluyendo mi error que fue olvidar el último residuo de la última división que da 1 o 0.

Tip: Si lo programas seguro te lo grabas !! 😄

Se me hizo dificil (Pero lo logre 😃)

Completé el reto con el año actual, lo dejaré aquí.

Res: Es el residuo de la división.

2022/2 = 1011 : Res = 0
1011/2 = 505 : Res = 1
505/2 = 252 : Res = 1
252/2 = 126 : Res = 0
126/2 = 63 : Res = 0
63/2 = 31 : Res = 1
31/2 = 15 : Res = 1
15/2 = 7 : Res = 1
7/2 = 3 : Res = 1
3/2 = 1 : Res = 1
2022 = 11111100110
1024 + 512 + 256 + 128 + 64 + 32 + 0 + 0 + 4 + 2 + 0 = 2022 

Reto

56 = 00111000
93 = 01011101
78 = 01001110

Aceptando el reto de la profesora!
Convirtiendo números decimales a binarios y viceversa
Mi edad:

14/2 = 7 || 0
7/2 = 3 || 1
3/2 = 1 || 1
Resultado = 1110
Para la conversión a decimal primero multiplicare por su exponente.
0 * 2 = 1 * 0 = 0
1 * 2 = 2 * 1 = 2
1 * 2 = 4 * 1 = 4
1 * 2 = 8 * 1 = 8
Resultado = 14

Año en el que nos encontramos:

2022/2 = 1011 || 0
1011/2 = 505 || 1
505/2 = 252 || 1
252/2 = 126 || 0
126/2 = 63 || 0
63/2 = 31 || 1
31/2 = 15 || 1
15/2 = 7 || 1
7/2 = 3 || 1
3/2 = 1 || 1
Resultado = 11111100110
Para la conversión a decimal primero multiplicare por su exponente
0 * 2 = 1 * 0 = 0
1 * 2 = 2 * 1 = 2
1 * 2 = 4 * 1 = 4
0 * 2 = 8 * 0 = 0
0 * 2 = 16 * 0 = 0
1 * 2 = 32 * 1 = 32
1 * 2 = 64 * 1 = 64
1 * 2 = 128 * 1 = 128
1 * 2 = 256 * 1 = 256
1 * 2 = 512 * 1 = 512
1 * 2 = 1024 * 1 = 1024
Resultado = 2022

Cualquier aporte o corrección sera bienvenido 💚

Mi aporte de un script de python que realicé para transformar binario a decimal.

Conversión entre binario y decimal.

  • Para covertir de decimal a binario:
    1. Dividir el número entre dos.
    2. Tomar el cociente y volver a divir entre 2.
    3. Repetir el proceso hasta no poder seguir dividiendo.
    4. Tomar el ultimo cociente e ir subiendo tomando los residuos.
  • Para convertir de binario a decimal:
    1. Tomar los número de izquierda a derecha.
    2. Ir multiplicando los número por potencias de dos.
    3. La potencia es de cuentos números hayan hacia la derecha.
    4. Sumar los números.

Decimal a Binario. Numero 23472 = 101101110110000

De sistema decimal a binario

520/2  res 0
260/2  res 0
130/2  res 0
65/2  res 1
32/2  res 0
16/2  res 0
8/2  res 0
4/2  res 0
2/2  res 0
1

520 = 1000001000

De sistema binario a decimal

0 * 2 ^ 0
0 * 2 ^ 1
0 * 2 ^ 2
1 * 2 ^ 3
0 * 2 ^ 4
0 * 2 ^ 5
0 * 2 ^ 6
0 * 2 ^ 7
0 * 2 ^ 8
1 * 2 ^ 9

Omitimos todas las operaciones que se multipliquen con cero, ya que darán como resultado cero, entonces tenemos:

2^3 + 2^9 
8 + 512
520

Convertir 11111001110
02 elevado a la 0= 0
1
2 elevado a 1=2
12 elevado a la 2=4
1
2elevado a la 3=8
02 elevado a la 4=0
0
2 elevado a la 5=0
12elevado a 6=64
1
2elevado a la 7=128
12elevado a la 8=256
1
2elevado a la 9=512
1*2elevado a la 10=1024

Sumamos estos valores y tenemos como resultado 1998

Recuerden Gente “si no hay ERROR no hay APRENDIZAJE”

Un dato curioso es que como el sistema binario funciona a partir de la potencia de 2, todos los resultados de esta se le va ir agregando un cero

2 = 10
4 = 100
8 = 1000
16 = 10000
32 = 100000
64 = 1000000

Mi edad en binario: 110100

No quería hacer tan extenso el comentario, intenté con estos números, corrijanme si me equivoqué 😅 37=100101 1994=11111001010 2022=11111100110

Hola! por si a alguien le interesa hice una pequeña hoja de cálculo para corroborar los cálculos manuales de pasar de decimal a binario y viceversa:
.
https://docs.google.com/spreadsheets/d/1yo3Lpl_3nYS4OeoKMxfGPLpH4Qwe_YpHd7lbyOcZ9gI/edit#gid=0
.

.

Conversión

Ejercicios de Binario a Decimal.

Ejercicios de Decimal a Binario.

Dejo a continuación mis ejercicios por si alguien necesito ver a detalle el procedimiento, espero le sirva a mas de uno

EJERCICIO 1
-De decimal a binario #34=
34/2=17 (0)
17/2= 8 (1)
8/2=4 (0)
4/2= 2 (0)
2/2= 1 (0)
Resultado= 100010
-De binario a decimal 10010
0x2^0= 0
1x2^1= 2
0x2^2= 0
0x2^3= 0
0x2^4= 0
1x2^5= 32
Resultado= 34

EJERCICIO 2
-De decimal a binario #23
23/2=11 (1)
11/2=5 (1)
5/2= 2(1)
2/2= 1 (0)
Resultado= 10111

-De binario a decimal
1x2^0= 1
1x2^1= 2
1x2^2= 4
0x2^3= 0
1x2^4= 16
Resultado= 23

EJERCICIO 3
-De decimal a binario #17
17/2=8 (1)
8/2= 4 (0)
4/2= 2 (0)
2/2= 1 (0)
Resultado= 10001

-De binario a decimal
1x2^0= 1
0x2^1= 0
0x2^2= 0
0x2^3= 0
1x2^4= 16
Resultado= 17

Acabo de entender lo que me habia costado dolores de cabeza desde siempre. Buenisima explicación.

Otra forma de convertir a binario


Otra forma de anotar la conversión sin encadenar las diviciones es hacerla como si fuera una tabla.

Por ejemplo, para convertir 83 a binario:

  1. En la primer columna escribir 83
  2. En la segunda columna escribir 0 si el número es par, o 1 si es impar. (en este caso 1)
  3. En la tercera columa escribir la resta del número de la primera columna menos el de la segunda. (en este caso 82)
  4. Pasar a la siguiente fila y en la priemra columna escribir la mitad del numero escrito en el paso anterior (en este caso 82 / 2 = 41). Repetir el proceso desde el paso 2.

La tabla quedaría algo así:

83 1 82
41 1 40
20 0 20
10 0 10
5 1 4
2 0 2
1 1 0

El proceso termina cuando se escribe 0 en la tercera fila.

Si leemos la segunda columna de abajo hacia arriba tenemos el resultado de la conversión: 1010011

Es muy cierto y necesario practicar, como la explicación esta siendo tan buena uno cree que ya lo entendió todo pero al tomar lápiz y papel es otra cosa.

Comparto mi ejercicio con mi fecha de nacimiento y con un número binario random que resulto ser un 182.

Practica

Decimal a Binario
34 = 1 0 0 0 1 0
15 = 1 0 0 0 0
150 = 1 0 0 1 0 1 1 0

ESTO ES MUY DIVERTIDO. PASAR DE BINARIO A DECIMAL Y VICEVERSA

![](https://static.platzi.com/media/user_upload/sistema%20binario%20%281%29-e35f0517-1a02-49ee-9457-28944fc3ea82.jpg)![](https://static.platzi.com/media/user_upload/sistema%20binario%20%281%29-b9be4ba1-d834-4386-b245-62a2bade8e2a.jpg)
Hola, alguien por aquí en el 2024? Tengo una pregunta en este tema, que pasa si el resultado de la divisón tiene décimal? Gracias. 😊
![]()Mi pequeño aporte a la comunidad, espero les sea útil ![](https://static.platzi.com/media/user_upload/1-41a189fa-ad22-48e1-bda5-8356dae2d020.jpg)
Dejo por acá el código en JAVA para convertir un decimal en Binario. ```java import java.util.Scanner; public class ConvertDecimalToBinary { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("Programa manual para convertir un decimal a binario"); System.out.println("Ingrese el número decimal: "); Integer inputDecimalNumber = sc.nextInt(); String outputBinaryNumber = converToBinary(inputDecimalNumber); System.out.println("El número decimal " + inputDecimalNumber + " es igual al número binario: " + outputBinaryNumber); } public static String converToBinary(Integer decimalNumber){ if (decimalNumber == 0){ return "0"; } StringBuilder binaryNumber = new StringBuilder(); while (decimalNumber > 0){ Integer remainder = decimalNumber % 2; binaryNumber.append(remainder); decimalNumber /= 2; } return binaryNumber.reverse().toString(); } } ```*import* java.util.Scanner; *public class* ConvertDecimalToBinary { *public static void* main(String\[] args) { Scanner sc = *new Scanner*(System.in); System.out.*println*("Programa manual para convertir un decimal a binario"); System.out.*println*("Ingrese el número decimal: "); Integer inputDecimalNumber = sc.*nextInt*(); String outputBinaryNumber = *converToBinary*(inputDecimalNumber); System.out.*println*("El número decimal " + inputDecimalNumber + " es igual al número binario: " + outputBinaryNumber); } *public static* String converToBinary(Integer decimalNumber){ *if* (decimalNumber == *0*){ *return* "0"; } StringBuilder binaryNumber = *new StringBuilder*(); *while* (decimalNumber > *0*){ Integer remainder = decimalNumber % *2*; binaryNumber.*append*(remainder); decimalNumber /= *2*; } *return* binaryNumber.*reverse*().*toString*(); } }

MI edad en sistema binario: 100010

Les comparto el apunte, espero que les sea de utilidad, platzi cada vez mejor!

Viendo que varias personas estaban haciendo la calculadora de decimales a binarios y de binarios a decimales en diferentes lenguajes de programación, yo decidí hacer el mío en Java. No sé si era la manera mas practica para resolverlo, pero funciona.

Esta es mi fecha de nacimiento:

Conversión binaria de 365

365/2=182 residuo 1
182/2=91 residuo 0
91/2=45 residuo 1
45/2=22 residuo 1
22/2=11 residuo 0
11/2=5 residuo 1
5/2=2 residuo 1
2/2=1 residuo 0
1 --> residuo 1

Resultado:
dec 365 = bin 1 0110 1101

Conversión decimal

1 x 2^0= 1 x 1 = 1
0 x 2^1= 2 x 0 = 0
1 x 2^2= 4 x 1 = 4
1 x 2^3= 8 x 1 = 8

0 x 2^4= 16 x 0 = 0
1 x 2^5= 32 x 1 = 32
1 x 2^6= 64 x 1 = 64
0 x 2^7= 128 x 0 = 0

1 x 2^8= 256 x 1 = 256

Suma final:
1+0+4+8+0+32+64+0+256 = dec 365

Podemos convertir los números de manera más intuitiva si tenemos en consideración cómo funcionan los sistemas numéricos, tanto binario y decimal.
.

Explicación del sistema decimal

La posición de cada dígito, de derecha a izquierda, representa a la base del sistema numérico a la potencia de números ascendentes, empezando con el cero.
Para el sistema decimal se puede mostrar así:

1 2 3
10³ 10² 10⁰

El dígito que está más a la derecha es la base (10) a la potencia de 0 (10⁰ = 1), el que le sigue es la base (10) a la potencia de 1 (10¹ = 10), los que le siguen 2 (10² = 100), 3 (10³ = 1000), 4 (10⁴ = 10000)… y así sucesivamente.
Para conseguir el valor que se quiere representar en decimal se suman todas las potencias multiplicadas por la cantidad ubicada en aquel dígito. Así:

1 2 3
hundreds’ place tens’ place ones’ place
100 10 1
10² 10¹ 10⁰
(100 * 1 = 100) + (10 * 2 = 20) + (1 * 3 = 3)

Por tanto si sumamos 100 + 20 + 3 (los resultados de las multiplicaciones) nos da la misma cantidad: 123
.

Explicación del sistema binario y conversión a decimal

Aplicado al sistema binario, las posiciones de los dígitos aplican el mismo concepto, pero la base ahora es 2.
Así podemos representar el número binario 1111011 con la tabla:

0 1 1 1 1 0 1 1
one hundred twenty eight’s sixty four’s thirty two’s sixteen’s eight’s four’s two’s one’s
128 64 32 16 8 4 2 1
2⁷ 2⁶ 2⁵ 2⁴ 2⁰

De esta manera se realiza la operación (128 * 0) + (64 * 1) + (32 * 1) + (16 * 1) + (8 * 1) + (4 * 0) + (2 * 1) + (1 * 1) y da 123 como resultado, su equivalente en decimal. (este es el procedimiento que se explicó en la clase)

Conversión de decimal a binario

  1. En un papel trazar 4 rayas horizontales (una para posicionar cada dígito) si se quiere convertir un número menor de 16. Si el número es del 16 al 255, trazar 8 rayas. (si el número es más grande se pueden usar más dígitos, pero tomaría más tiempo)
  2. Escribir las potencias de 2 abajo de cada raya. Empezar por la que está más a la derecha (2⁰) escribiendo 1 y se sigue multiplicando por 2 en cada dígito que le sigue. (similar a como se muestra en la tabla de arriba)
  3. Empezar por la potencia que está más a la izquierda y preguntarse “¿Es el número decimal que quiero convertir mayor o igual a la potencia de este dígito?” Si es así, colocar un 1 en esa casilla y restarle la potencia al número decimal. Si la respuesta es no, escribir 0 y seguir con la siguiente casilla.
  4. Continuar de izquierda a derecha llevando la cuenta de la diferencia de los números que vas restando. Al terminar ya tienes el número convertido a binario.

De esta forma se hace con el número 123
“123 está en el rango de 16 a 255, así que 8 dígitos (bits) serían adecuados”

____ ____ ____ ____ ____ ____ ____ ____
128 64 32 16 8 4 2 1

"123 es menor a 128, así que escribiré un 0"

0 ____ ____ ____ ____ ____ ____ ____
128 64 32 16 8 4 2 1

"123 es mayor a 64, así que escribiré un 1 "

0 1 ____ ____ ____ ____ ____ ____
128 64 32 16 8 4 2 1

“123 - 64 = 59, aún tengo que representar el 59, así que…”
"59 es mayor a 32, así que escribiré un 1"

0 1 1 ____ ____ ____ ____ ____
128 64 32 16 8 4 2 1

“59 - 32 = 27, así que…”
"27 es mayor a 16, así que escribiré un 1"

0 1 1 1 ____ ____ ____ ____
128 64 32 16 8 4 2 1

“27 - 16 = 11, así que…”
"11 es mayor a 8, así que escribiré un 1"

0 1 1 1 1 ____ ____ ____
128 64 32 16 8 4 2 1

“11 - 8 = 3, así que…”
"3 es menor a 4, así que escribiré un 0"

0 1 1 1 1 0 ____ ____
128 64 32 16 8 4 2 1

"3 es mayor a 2, así que escribiré un 1"
"3 es menor a 4, así que escribiré un 0"

0 1 1 1 1 0 1 ____
128 64 32 16 8 4 2 1

“3 - 2 = 1, así que…”
"1 es igual a 1, así que escribiré un 1"

0 1 1 1 1 0 1 1
128 64 32 16 8 4 2 1

Ya no quedan más dígitos, ya convertimos el número 123 a binario (1111011)
.


.
Para esta explicación me basé en el contenido de Khan Academy, donde explican el tema a mayor detalle. Aquí les dejo el enlace.
https://www.khanacademy.org/computing/ap-computer-science-principles/x2d2f703b37b450a3:digital-information/x2d2f703b37b450a3:binary-numbers/a/bits-and-binary

Este es mi resumen y algunos ejercicios extra que realice de práctica

Les comparto mi versión de un programa para convertir un número a binario en Python.

Lo probé también en Replit a ver que tal funciona y este es el resultado usando el número 75 para convertir

Estoy aprendiendo a programar con este lenguaje 🙂
Cualquier aporte para mejorar el código es bienvenido 🙌🏻

![]()![]()![](https://static.platzi.com/media/user_upload/image-8d633523-8cd9-4d1d-b1f8-1ec217a65fa2.jpg) ![](https://static.platzi.com/media/user_upload/image-96160259-ebb1-4b6b-922e-bea3e386c854.jpg)
70 a binario 70/2 = 35 (1) 35/2 = 17 (1) 17/2 = 8 (1) 8/2 = 4 (0) 4/2 = 2 (0) 2/2 = 1 (0)

Para prácticar hice un convertidor en Python

def division(num, base):
    return num//base, num%base

def list_to_text(lista):
    texto = ""
    for index in range(0, len(lista)):
        texto = texto + str(lista[index])
    resultado = int(texto)
    return resultado

def list_to_text_parentesis(lista):
    texto = ""
    for index in range(0, len(lista)):
        texto = texto + "(" + str(lista[index]) + ")"
    return texto

def decimal_a_base(num, base):
    res = []
    i = 0
    if base < 2:
        print("La base minima es 2")
        return

    if base != int(base):
        print("La base debe ser discreta")
        return

    while True:
        if num >= base:
            num, r = division(num, base)
            res.append(r)
        else:
            res.append(num)
            break
        i += 1
    
    res = res[::-1]
    
    if base <= 10:
        res = list_to_text(res)
    else:
        res = list_to_text_parentesis(res)
    
    return res

num = int(input("Ingresar numero a convertir: "))
base = int(input("Ingresar la base a convertir: "))

print("En base decimal es " + str(decimal_a_base(num, base)))

Mi aporte, gracias por la clase.

Puffff Esta clase me encanta

La razón de la division para obtener la representación en binario es muy simple.
Imagina que tienes 7 bolitas. En el sistema decimal son 7 unidades. En caso de tener 17 bolitas puedes agrupar 10 de ellas en una nueva gran bola, la decena. Entonces tienes 1 decena y 7 unidades.
Volviendo a las 7 bolitas, las puedes agrupar en grupos de 2 obteniendo 3 grupos y 1 suelta. La suelta sera tu unidad en binario. Ahora los 3 grupos aun se pueden agrupar en grupos de 2, obtiendo un nuevo grupo y uno solo. El que se queda solo sera la nueva “decena” y el nuevo grupo sera la “centena” presentando : 1 1 1 en binario. Puedes hacer el ejercicio con 5 y obtendras 1 0 1 tanto con las divisiones como con mi ejemplo

Decimal a Binario:

60 = 111100
17 = 10001
160 = 10100000
78 = 1001110
24 = 11000

algunos ejercicios que realice, para soltar la mano

(

un ejercicio que puedes tomar que es hasta divertido seria “convertir tu nombre en sistema binario” como llagar eso primero buscas el abecedario lo anotas en una hoja y colocas los numeros correspondientes, lo siguiente es practicar lo aprendido en clase, seria un buen reto para tus amigos y familiares responder o desifrar cosas en binario yo lo hice asi y este seria mi nombre
110010110100110100 101100111110101101001010110000"

Los ejemplos que hice.

  • 890 = 1101111010
  • 69 = 1000101
    Uno de tanto escribir las potencias termina aprendiéndoselas.

Conversión de Decimal a Binario en Python

x= int(input("Digite numero a convertir => "))
bi=[]

while x > 1:
  residuo = x % 2
  x = x // 2
  if residuo == 0:
    bi.append(0)
  elif residuo == 1:
    bi.append(1)
    
  if x == 1:
    bi.append(1)

bi.reverse()

print("la conversión de tu numero decimal en numero binario es:")
print(bi)

Hola comunidad, comparto mi código de python para convertir de binario a decimal y viceversa, intente hacerlo algo didáctico, soy principiante, así que aún repito un poco la lógica que empleo, espero les sea útil y me ayuden a mejorar.
Saludos.

def dec_bin (): # Función decimal a binario
    bin_list=[]
    dec_num= int(input("¿Cual es el número decimal que deseas convertir a binario? ==> "))
    print (f"El resultado de {dec_num}/2 es:",dec_num//2,",","su reciduo es:", dec_num % 2) #Aquí repito código
    if dec_num % 2 == 0:                  #Aquí repito código
            bin_list.insert (0,0)
    else:
        bin_list.insert (0,1)             #Aquí repito código
    
    while dec_num >1:
        
        dec_num = dec_num // 2
        print (f"El resultado de {dec_num}/2 es:",dec_num//2,",","su reciduo es:", dec_num % 2) #Aquí repito código
        if dec_num % 2 == 0:
            bin_list.insert (0,0)         #Aquí repito código
        else:
            bin_list.insert (0,1)         #Aquí repito código
    print ("*"*60)
    print ("El número binario que buscas es:", "".join(map(str, bin_list))) # Converitr lista a str


def bin_dec (): # Función binario a decimal
    int_bin_list = []
    int_list =[]
    n=0
    str_bin_num = input("¿Cual es el número binario que deseas convertir a decimal? ==> ")
    str_bin_num = str_bin_num.strip ()
    str_bin_list = list(str_bin_num) # Transformar el str a una lista
    str_bin_list_rev= str_bin_list[::-1] #Invertir orden de la lista 
    for e in str_bin_list_rev:
        e=int(e) #Transforma cada str de la lista a int, restaría diferenciar entre un número y una letra si es que el usuario introduce una por accidente
        int_bin_list.append (e) #Agregar cada entero a una lista declarda como entero
    for e in int_bin_list:
        print (f"El resultado de {e} * 2 ^ {n}  es:",e * 2**n)#Aquí repito código
        int_list.append (e*2**n)#Aquí repito código
        n= n + 1
    print ("*"*60)
    print (f"El número decimal que buscas es la suma de cada potencia expresada arriba: ",sum(int_list))#Pasa los elemento de la lista a la función sum para que realice la suma de todos ellos
        
def run ():
    type_num= input("¿Con que número cuentas, decimal o binario? ==> ")
    type_num = type_num.lower()
    type_num = type_num.strip ()
    
    if type_num == "decimal":
        print ("*"*60)
        dec_bin ()
    else:
        print ("*"*60)
        bin_dec ()

if __name__ == "__main__":
    run ()

Convertir 173 a binario:

173/2=1
86/2=0
43/2=1
21/2=1
10/2=0
5/2=1
2/2=0
1
Resultado 10101101

Me puse a crear un programa para convertir de decimal a binario y uno para convertir de binario a decimal (en Java).

Decimal a binario

import java.util.Scanner;
import java.util.Arrays;

class Main {
  public static void main(String[] args) {
    Scanner input = new Scanner(System.in);
    System.out.print("Enter the decimal number: ");      
    int decimal = input.nextInt();
    System.out.println("You entered: " + decimal);

    int dividend = decimal;
    int dividend2 = decimal;
    
    int i = 0;
    do{
      
      int quotient = dividend / 2;
      int remainder = dividend % 2;
      
      dividend = quotient;

      i += 1;
      
    }while(dividend>=1);
    System.out.println(i);
    
    int[] myArray = new int[i];
    int j = myArray.length;
    do{
      
      int quotient2 = dividend2 / 2;
      int remainder2 = dividend2 % 2;
      System.out.println("The result is: " + quotient2 + " and its remainder is: " + remainder2);
      dividend2 = quotient2;

      myArray[j-1] = remainder2;
      
      j -= 1;
      
    }while(dividend2>=1 && j > 0);
    System.out.println(Arrays.toString(myArray));

    int r = 0;
    int Binary = 0;
    for(int k =0 ; k<myArray.length ; k++){
      r = Binary * 10;
      Binary = r + myArray[k];
    }
    System.out.println("The decimal number " + decimal + " converted to binary is: " + Binary);
  }
}

Binario a decimal

import java.util.*;
import java.io.*;

class Main {
  public static void main(String[] args) {
    System.out.println("Enter a binary number: ");
    Scanner input = new Scanner(System.in);
    int binary = input.nextInt();
    System.out.println("You entered: " + binary);

    int binary1 = binary;
    int binary2 = binary;
    int i = 0;
    while(binary1 > 0){
      int remainder = binary1 % 10;
      binary1 = binary1 / 10;
      i = i + 1;
    }
    
    int[] myArray = new int[i];
    int j = myArray.length;
    int[] arrayM = new int[i];
    int k = 0;
    while(binary2 > 0 && k<i){
      int remainder2 = binary2 % 10;
      binary2 = binary2 / 10;
      System.out.println("\n The number we take(the last): " + remainder2 + "\n The rest of the number: " + binary2);
      
      myArray[j-1] = remainder2;
      int p = (int) Math.pow(2, k);
      System.out.println("The number 2 raised to the power of its index (" + k + "): " + p);

      int m = remainder2 * p;
      System.out.println("The multiplication between the number we take(" + remainder2 + ") and the number 2 raised to the power of its index(" + p + ") is: " + m);

      arrayM[j-1] = m;
      
      k=k+1;
      j=j-1;
    }
    System.out.println("\n" + Arrays.toString(myArray));
    System.out.println("\n" + Arrays.toString(arrayM));

    int decimal = 0;
    for(int l=0; l<arrayM.length; l++){
      decimal = decimal + arrayM[l];
    }
    System.out.println("The binary number (" + binary + ") converted to decimal is: "+ decimal);
    
  }
}

Ejemplo Decimal a Binario:

28 -> Dividir x 2

28 - 14 - 7 - 3 - 1
0 - 0 - 1 - 1 = Binario: 1100 ( <—)

93 - 46 - 23 - 11 - 5 - 2
1 - 0 - 1 - 1 - 1 -0 = Binario: 011101

Ejemplo Binario a Decimal:

28 = 11100 -> 00111

0 x 2^0 = 0 x 1 = 0
0 x 2^1 = 0 x 2 = 0
1 x 2^2 = 1 x 4 = 4
1 x 2^3 = 1 x 8 = 8
1 x 2^4 = 1 x 16 = 16

0 + 0 + 4 + 8 + 16 = 28

Conversión de binario a decimal en python:

30 Décimal a Binario
30 / 2 = 15 = 0
15 / 2 = 7 = 1
7 / 2 = 3 = 1
3 / 2 = 1
2 / 2 = 1
Binario = 01111

40 Décimal a Binario
40 / 2 = 20 = 0
20 / 2 = 10 = 0
10 / 2 = 5 = 0
5 / 2 = 2 = 1
2 / 2 = 1 = 0
1 = 1
Binario = 000101

1010101 de binario a decimal:

1×1=1
0×2=0
1×4=4
0×8=0
1×16=16
0×32=0
1×64=64

Se suman los resultados y da 85

Decimal a binario
42 = 101010

Binario a decimal
0 * 2^0 = 0
1 * 2^1 = 2
0 * 2^2 = 0
1 * 2^3 = 8
0 *2^4 = 0
1 *2^5 = 32
0+2+0+8+0+32 = 42

Decimal a binario

9

9 ÷ 2 = 4 → 1 
4 ÷ 2 = 2 → 0 
2 ÷ 2 = 1 → 0 
1 ÷ 2 = 0 → 1

9 = 1001

16

16 ÷ 2 = 8 → 0 
8 ÷ 2 = 4 → 0 
4 ÷ 2 = 2 → 0 
2 ÷ 2 = 1 → 0 
1 ÷ 2 = 0 → 1

16 = 10000

31

31 ÷ 15 = 2 → 1 
15 ÷ 2 = 7 → 1 
7 ÷ 2 = 3 → 1 
3 ÷ 2 = 1 → 1 
1 ÷ 2 = 0 → 1

31 = 11111 

Binario a decimal

1001

1 * 2⁰ = 1 
0 * 2¹ = 0 
0 * 2² = 0 
1 * 2³ = 8

1 + 8 = 9 
1001 = 9

11010

0 * 2⁰ = 0 
1 * 2¹ = 2 
0 * 2² = 0 
1 * 2³ = 8 
1 * 2⁴ = 16

2 + 8 + 16 = 26 
11010 = 26 

101011

1 * 2⁰ = 1 
1 * 2¹ = 2 
0 * 2² = 0 
1 * 2³ = 8 
0 * 2⁴ = 0 
1 * 2⁵ = 32

1 + 2 + 8 + 32 = 43 
101011 = 43

el método es por dividir y multiplicar

28/2 = 14 que es igual a 2 * 14 y como no tiene un residuo asi que es un 0, di sigue dividiendo hasta que ya el numero no sea igual o menor que 2

Mi pequeño aporte de conversion de decimal a binario

Yo pensando que mi lapto estaba sucia, pase el dedo por la pantalla y resulta que es la pantalla transparente que tiene la profe, #PlatziConJuegosMentales

Hasta que lo entendi, en el examen de Fundamentos del Software te piden que respondan como se escribre el numero 27 en binario.

RETO
Mi edad: 18 = 01001.
Año actual: 2022 = 01100111111

49 en binario +110001

Algoritmo para convertir base 10 a base 2 usando métodos recursivos:

funcion aBinario (numero) {
	if (numero > 0) {
		aBinario(numero / 2);
		imprimir(numero % 2);
	}
}

estoy seguro que el papel se entiende mejor pero esta es mi manera de interpretarlo, aqui mis ejemplos

28/2 = 14 > 0
14/2 = 7 > 0
7/2 = 3 > 1
3/2 = 1 > 1
1/2 (como 1 ya no se puede dividir entre 2 aquí es donde se para la operación)
(ahora tomamos el residuo y los restantes para formar el 28 en binario)

Decimal = Binario
28 = 11100

33/2 = 16 > 1
16/2 = 8 > 0
8/2 = 4 > 0
4/2 = 2 > 0
2/2 = 1 > 0
1/2 = > 1

Decimal = Binario
33 = 10001

Binario = Decimal
00111
0 x (2^0 = 1) = 0
0 x (2^1 = 2 ) = 0
1 x (2^2 = 4 ) = 4
1 x (2^3 = 8 ) = 8
1 x (2^4 = 16 ) = 16
Suma (0 , 0, 4, 8 ,16) = 28

Binario = Decimal
100001
1 x(2^0 = 1) = 1
0 x(2^1 = 2) = 0
0 x(2^2 = 4) = 0
0 x(2^3 = 8) = 0
0 x(2^4 = 16) = 0
1 x(2^5 = 32) = 32
Suma (1, 0, 0, 0, 0, 32) = 33

el 70 que comenta profr de granda enel curso de introducción a la web 🤩

Hola use los siguientes numeros
200/2 = 100 = 0
100/2 = 50 = 0
50/2 = 25 = 0
25/2 = 12.5 = 1
12/2 = 6 = 0
6/2 = 3 = 0
3/2 = 1 = 1 binario= 11001000

89/2 = 44.5 = 1
44/2 = 22 = 0
22/2 = 11 = 0
11/2 = 5.5 = 1
5/2 = 2.5 = 1
2/2 = 1 = 0 binario= 1011001

130/2 = 65 = 0
65/2 = 32.5 = 1
32/2 = 16 = 0
16/2 = 8 = 0
8/2 = 4 = 0
4/2 = 2 = 0
2/2 = 1 = 0 binario 10000010

reto

98/2=49 : res=0
49/2=24 : res=1
24/2=12 : res=0
12/2=6 : res=0
6/2=3 : res=0
3/2=1 : res=1

98=1100010

0 * 2^0 = 0
1 * 2^1 = 2
0 * 2^2 = 0
0 * 2^3 = 0
0 * 2^4 = 0
1 * 2^5 = 32
1 * 2^6 = 64
= 98

💥Binario a decimal
1 x 2° -> 1 x 1 = 1
1 x 2°1 -> 2 x 1 = 2
0 x 2°2 -> 4 x 0 = 0
1 x 2°3 -> 8 x 1 = 8
0 x 2°4 -> 16 x 0 = 0
0 x 2°5 -> 32 x 0 = 0

🧮Resultado: 11

💥Decimal a binario

56 /2
0 28 /2
0 14 /2
0 7 /2
1 3/2
1 1
🧮 Resultado: 56 --> 111000

Les dejo este código, conviertiendo de binario a decimal!