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.
Código :
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.
Código :
<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>
<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>