Jump to content
Sign in to follow this  
PetaByte

Dúvida - Substituir alguns números por letras

Recommended Posts

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>

Edited by brunoais
geshi

Share this post


Link to post
Share on other sites
HappyHippyHippo

que queres dizer com "todos de uma vez em vez de um por um ?"


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.