• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

AriOps

[PHP]Conversor Binário>Decimal

9 mensagens neste tópico

Os códigos HTML e PHP estão separados apenas para uma melhor visualização, na prática ficam os dois no mesmo ficheiro (index.php).

<?php
/****************************
CONVERSOR BINÁRIO > DECIMAL
****************************/
if(!function_exists('str_split')){
   function str_split($string,$split_length=1){
       $count = strlen($string); 
       if($split_length < 1){
           return false; 
       } elseif($split_length > $count){
           return array($string);
       } else {
           $num = (int)ceil($count/$split_length); 
           $ret = array(); 
           for($i=0;$i<$num;$i++){ 
               $ret[] = substr($string,$i*$split_length,$split_length); 
           } 
           return $ret;
       }     
   } 
}
if (isset($_POST['hid'])) {
$bin = $_POST['bin'];
# Para transformar em decimal, temos de multiplicar cada dígito por 2^n, em que n é o nº de algarismos do binário -1.
$alg = strlen($bin);
echo "Número de Algarismos: ".$alg."<br />";
$array_bin = str_split($bin);
for ($n=0; $n<=($alg-1); $n++) {
$array_dec{$n} = ($array_bin{($alg-1)-$n}*pow(2,$n));
}
$res = array_sum($array_dec);
echo "<p><strong>Resultado: ".$res."</strong>";
}
?>

<html>
<body>
<form action="index.php" method="post">
<input type="text" name="bin" />
<input type="submit" id="Submit" name="Submit" value="Converter" />
<input type="hidden" name="hid" />
</form>
</body>
</html>

Em Acção: http://www.ptattacks.com/conversor

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

mt bom, ja tinha prokurado bues, mas este ta mm bue bakano...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Uma função que encontrei na rede bin > texto modificada por mim:

function bin2txt($str){
$text_array=explode("\r\n", chunk_split($str, 8));
for ($n=0; $n<count($text_array)-1; $n++){
	if(intval($text_array[$n], 2)!=0){
		$newstring=$newstring.stripslashes(chr(base_convert($text_array[$n], 2, 10)));
	}else{
		$newstring="That binary code is invalid.";
		return $newstring;
	}
}
$newstring="<b>".$str."</b> in plain text:<br />".$newstring;
return $newstring;
}

EDIT: Alterei ali algum código que me tava a enterrar :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

E agora texto > bin só para chatear :D :

function txt2bin($str){
$text_array=explode("\r\n", chunk_split($str, 1));
for($n=0; $n<count($text_array)-1; $n++){
	$newstring.=substr("0000".base_convert(ord($text_array[$n]), 10, 2), -8);
}
return $newstring;
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Uma coisa é encontrar, outra é fazer :)

eu fiz mesmo só porque me apetecia, deu trabalho mas aí está :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Uma coisa é encontrar, outra é fazer :)

eu fiz mesmo só porque me apetecia, deu trabalho mas aí está :D

Claro claro :D mas como eu ainda não percebia mesmo nada de php na altura, adaptei o código :D

Agora fica aí código para alguem que precise :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora