5

#PlatziCodingChallenge Funciones y números binarios ¿Te atreves?

La forma en la que funcionan las computadoras es con números binarios. ¿Puedes crear una función que reciba un número en base decimal y lo regrese en binario? Por ejemplo:
14 -> 1110
38 -> 100110
127 -> 1111111
Aquí está el twist: no puedes utilizar las librerías de los lenguajes como la función bin en Python.

Escribe tu comentario
+ 2
Ordenar por:
3
19943Puntos

Reto 52 en JavaScript y en Python

// Funciones y números binarios en JavaScriptfunctionbinario(numero) {
  let binario = ''while (numero > 1) {
    let residuo = numero % 2
    binario = `${residuo}${binario}`
    numero = (numero - residuo) / 2
  }
  binario = `${numero}${binario}`return binario
}

console.log(binario(14)) // 1110console.log(binario(38)) // 100110console.log(binario(127)) // 111111
# Funciones y números binarios en Pythondefbinario(numero):
  binario = ''while numero > 1:
    residuo = numero % 2
    binario = str(round(residuo)) + binario
    numero = (numero - residuo) / 2
  binario = str(round(numero)) + binario
  return binario

print(binario(14)) # 1110
print(binario(38)) # 100110
print(binario(127)) # 111111
1
49000Puntos
6 meses

¡Qué crack, Cristian!

1
30091Puntos

Python

def convert_bin(num):
    rem = 0
    i = 0
    while num > 0:
        rem += (num % 2) * (10 ** i)
        num = int(num / 2)
        i += 1
    return remprint(convert_bin(14))
print(convert_bin(38))
print(convert_bin(127))
1
280Puntos

Hace tiempo revisando la documentación que se podía hacer esto me exploto la cabeza y quede maravillado funciona háganlo la prueba

functionconvierteBinario(num){
return num.toString(2);
}
1
280Puntos
6 meses

No se si la respuesta anterior Era valida 😅 pero esta seria mi otra solucion

function convierteBinario(num){
while (num != 0) {
      residuo = num % 2;
      convertido = num == 1 ? num + convertido : residuo + convertido;
      num = parseInt(num / 2);
}
returnnum;
}
1
280Puntos
6 meses

😅😅😅

function convierteBinario(num) {
let residuo=0,convertido=0;
while (num != 0) {
      residuo = num%2;
      convertido = num == 1 ? num + convertido : residuo + convertido;
      num = parseInt(num / 2);
}
returnnum;
}
1
21411Puntos

Reto cumplido en python:

#Funcion que convierte un numero decimal a un numero binariodefdecimal_2_binary(decimal):
    binary=''
    num = decimal

    if num == 0:
        binary = '0'while num >= 1:
        #Comprobacion si el numero divido entre 2 tiene residuoif num%2 == 1:
            #Si el numero tiene se agrega un uno
            binary = '1' + binary
            num = num/2 - 0.5else:
            #Si el numero No tiene residuo se agrega un cero
            binary = '0' + binary
            num = num/2return(binary)

whileTrue:
    #Ingreso de un numero entero
    number = int(input('Type a number: '))
    #llamada de a funcion que convierte un decimal a binario
    binary = decimal_2_binary(number)
    #Resultado
    print(f'Binary: {binary}')

✌️

1
12916Puntos
#include <stdio.h>#include <string.h>#include <math.h>#include <stdlib.h>

void binario(int numero);

void binario(int numero){
  printf("%d-> ",numero);int residuo=0;int i=0;int longitud=sqrt(numero)+1;int bin[longitud];do{
    residuo=numero%2;
    bin[i]=residuo;
    numero/=2;
    i++;
  }while(numero>0);
  i--;int j=0;while(i>=0){
    printf("%d", bin[i]);
    i--;
  }
}

int main(){
  binario(12);
  printf("\n");
  binario(34);
  printf("\n");
  binario(0);
  printf("\n");
  binario(1);
  printf("\n");
  binario(15);
}
1
12916Puntos
6 meses

En Python queda mucho mejor a la vista

defbinario(numero):if numero<2:
        return'1'if numero==1else'0'else:
        return binario(numero//2) + str(numero%2)

if __name__=="__main__":
    print("12 -> {}".format(binario(12)))
    print("34 -> {}".format(binario(34)))
    print("1 -> {}".format(binario(1)))
    print("0 -> {}".format(binario(0)))
    print("15 -> {}".format(binario(15)))
1

En Python

#CONVERTIR NUMERO DECIMAL A  BINARIO
decimal=int(input('Ingrea tu numero aqui: '))
n=0ref=2**n
binario=[]
if decimal==0:
    bin='0'
    binario.append(bin)
else:
    while decimal>ref:
        ref=2**n
        if decimal>ref:
            n=n+1else:
            pass
ifref>decimal:
    ref=ref/2else:
    pass

if decimal==ref:
    n=n+1else:
    pass

for i inrange (n):
    res=decimal-refif res>=0:
        bin='1'
        binario.append(bin)
        decimal=res
    else:
        bin='0'
        binario.append(bin)
    ref=ref/2
binario=''.join(binario)
print(f'Tu número en binario es: {binario}')
1
7689Puntos

Resultado:

<!DOCTYPE html><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width, initial-scale=1.0"><title>Funciones y números binarios</title></head><style>
  * {
    margin: 0;
  }

  .contenedor {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    height: 100vh;
  }

  .inputs {
    display: flex;
    flex-flow: column;
    align-items: center;
    padding: 2rem;
  }

  .section {
    padding: 0.25rem2rem;
    display: flex;
    align-items: center;
  }

  .sectioninput, .sectionspan{
    margin-left: 12px;
    font-weight: bold;
  }


  .btn {
    border: 2px solid black;
    border-radius: 6px;
    cursor: pointer;
    padding: 20px;
  }

</style><body><divclass="contenedor"><h1style="margin-bottom: 24px;">De número a binario</h1><divclass="inputs"><sectionclass="section">
        Ingresa el número que deseas trasformar a binario <inputid="num"placeholder="número"/></section><sectionclass="section">
        En binario sería: <spanstyle="margin-right: 10px;"id='resultado'></span></section></div><buttononclick="transformar()"class="btn">Transformar...</button></div><script>functiontransformar() {
      let num = parseInt(document.getElementById('num').value)
      let binario = []
      while (num >= 1){
        binario.unshift(num % 2)
        num = Math.floor(num / 2)
      }
      document.getElementById('resultado').innerHTML = binario.join('')
    }
  </script></body></html>