Ir para o conteúdo
PetaByte

Dúvida - Substituir alguns números por letras

Mensagens Recomendadas

PetaByte    0
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


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


×

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.