Autor Tema: [Reto] Calculadora binaria en PHP  (Leído 1652 veces)

Desconectado javipilo

  • PHPero Experto
  • *****
  • Mensajes: 975
  • Karma: 31
  • Sexo: Masculino
    • Ver Perfil
[Reto] Calculadora binaria en PHP
« en: 21 de Octubre de 2011, 10:22:23 am »
Para este reto deberéis hacer una calculadora binaria, que pase de decimal a binario y al contrario.

Si no sabes usar el sistema binario busca en google como usarlo, luego desarrollo más el post cuando llegue a mi casa jeje.

Comunidad PHPeros

[Reto] Calculadora binaria en PHP
« en: 21 de Octubre de 2011, 10:22:23 am »

Desconectado GuayAngel12

  • PHPero Experto
  • *****
  • Mensajes: 894
  • Karma: 17
  • Sexo: Masculino
  • Programador PHP, CSS, HTML...
    • Ver Perfil
    • GreeBool
Re:[Reto] Calculadora binaria en PHP
« Respuesta #1 en: 21 de Octubre de 2011, 15:05:25 pm »
Siento no aportar nada pero... ya existe una función para eso...

Saludos,
Ángel Q.

Desconectado javipilo

  • PHPero Experto
  • *****
  • Mensajes: 975
  • Karma: 31
  • Sexo: Masculino
    • Ver Perfil
Re:[Reto] Calculadora binaria en PHP
« Respuesta #2 en: 21 de Octubre de 2011, 18:19:40 pm »
Lo sé, pero tienen que hacer una para superar el reto.

Desconectado tuadmin

  • PHPerit@
  • *
  • Mensajes: 9
  • Karma: 0
  • Nuev@ PHPer@
    • Ver Perfil
Re:[Reto] Calculadora binaria en PHP
« Respuesta #3 en: 24 de Octubre de 2011, 17:34:28 pm »
Código: [Seleccionar]
<?php
function validar_binario($str)
{
foreach(str_split($str) as $bit)
{
if($bit == || $bit == 1)
{}
else
{
return false;
}
}
return true;
}
function 
bin_a_dec($bin)
{
$bin ltrim($bin,&#39;0&#39;);
$bin strrev($bin);

if( validar_binario($bin))
{
$resultado 0;
foreach(str_split($bin) as $pos => $bit)
{
if($bit == &#39;1&#39;)
{
$resultado pow(2,$pos) + $resultado;
}
}
return $resultado;
}
else
{
die("No es un numero binario");
}
}
function 
dec_a_bin($n)
{
$dividendo $n;
$cociente 0;
$binario = &#39;&#39;;
do
{
$cociente floor($dividendo 2);
$resto $dividendo 2;
$binario .= $resto;
$dividendo $cociente;
}
while( $dividendo >1);
if($dividendo ==1){
$binario .=1;
}
return strrev($binario);
}

Desconectado nmartin021

  • PHPero Avanzado
  • ****
  • Mensajes: 250
  • Karma: 9
    • Ver Perfil
Re:[Reto] Calculadora binaria en PHP
« Respuesta #4 en: 24 de Octubre de 2011, 19:39:05 pm »
Código: [Seleccionar]
<?php
function validar_binario($str)
{
foreach(str_split($str) as $bit)
{
if($bit == || $bit == 1)
{}
else
{
return false;
}
}
return true;
}
function 
bin_a_dec($bin)
{
$bin ltrim($bin,&#39;0&#39;);
$bin strrev($bin);

if( validar_binario($bin))
{
$resultado 0;
foreach(str_split($bin) as $pos => $bit)
{
if($bit == &#39;1&#39;)
{
$resultado pow(2,$pos) + $resultado;
}
}
return $resultado;
}
else
{
die("No es un numero binario");
}
}
function 
dec_a_bin($n)
{
$dividendo $n;
$cociente 0;
$binario = &#39;&#39;;
do
{
$cociente floor($dividendo 2);
$resto $dividendo 2;
$binario .= $resto;
$dividendo $cociente;
}
while( $dividendo >1);
if($dividendo ==1){
$binario .=1;
}
return strrev($binario);
}
Bien, pero tu código está poco optimizado. Repasalo y verás que hay algunas cosas que hacen que gaste (poco) más, pero que si se usa en un bucle se acumula.

Saludos