Ir para o conteúdo
PetaByte

Dúvida - Substituir alguns números por letras

Mensagens Recomendadas

PetaByte

Boa Noite,

Estou com uma certa dificuldade num pequenito problema. Tenho de converter de decimal para hexadecimal, mas preferi não usar as funções já pré-definidas no PHP. Quero substituir alguns números por letras. Por exemplo:

53120 (decimal) = CF80 (hexadecimal) . O resultado no programa actualmente é: 121580.

Tenho de substituir :

10 = A

11 = B

12 = C

13 = D

14 = E

15 = F

Queria substituir tudo de uma vez, em vez de 1 por 1. Alguém me consegue ajudar? Obrigado.

<html>
<head>
<title>Sistemas de Conversão</title>
<style type ="text/css">
body
{
font-family: Cambria;
}
</style>
</head>
<body>
<br><br><br>
<center><form method="post" action="conversao.php">
Escolha o Sistema de Conversão:  
<select name="op">
<option>Decimal para Binário</option>
<option>Decimal para Octal</option>
<option>Decimal para Hexadecimal</option>
<option>Binário para Decimal</option>
</select>
<br><br>

Insira o valor: <input min="0" max="1000000" type="number" name="val" autofocus required>  <input type="submit" name="aa" value="Calcular">
</form></center>
<?
$op = $_POST['op'];
$num = $_POST['val'];
$decimal;
$binario;
//Chamada das funções
if($num==NULL)
{
echo "";
}
else{
if($op == "Decimal para Binário"){
$resultado=dec_bin($num);
echo "<center>O resultado da conversão é: $resultado</center>";
}
else if($op == "Decimal para Octal"){
$resultado=dec_octal($num);
echo "<center>O resultado da conversão é: $resultado</center>";
}
else if($op == "Decimal para Hexadecimal"){
$resultado=dec_hexa($num);
/*$procurada1 = "12";
$psubstituir = "C";
$falterada = str_replace($procurada, $psubstituir, $resultado);
echo "Frase inicial -> $resultado<br>";
echo "Frase alterada -> $falterada";*/
echo "<center>O resultado da conversão é: $resultado</center>";
}
else{
$resultado=bin_dec($num);
echo "<center>O resultado da conversão é: $resultado</center>";
}
}
function dec_bin($decimal)
{
$binario = "";
while($decimal != 0)
{
$resto = $decimal % 2;
$decimal = floor($decimal / 2);
$binario = $resto.$binario;
}
return $binario;
}
function dec_octal($decimal)
{
$octal = "";
while($decimal != 0)
{
$resto = $decimal % 8;
$decimal = floor($decimal / 8);
$octal = $resto.$octal;
}
return $octal;
}
function dec_hexa($decimal)
{
$hexa = "";
while($decimal != 0)
{
$resto = $decimal % 16;
$decimal = floor($decimal / 16);
$hexa = $resto.$hexa;
}
return $hexa;
}
?>
</body>
</html>

Editado por brunoais
geshi

Partilhar esta mensagem


Ligação 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

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.