This page was exported from Recursos para programadores [ https://eldesvandejose.com ]
Export date: Tue Oct 22 7:01:08 2019 / +0000 GMT

PHP-TUT-05 Bases de numeración en PHP



PHP permite manejar distintas bases de numeración, algo muy habitual y necesario en el mundo de la programación. A menudo debemos vérnoslas con números binarios, octales y hexadecimales además, por supuesto, de los números decimales "de toda la vida". El lenguaje nos ofrece funciones para manejar estos valores, y cambiar un valor de una base de numeración a otra fácilmente.

CONVERTIR DECIMAL A OTRAS BASES

Podemos convertir un número decimal a alguna de las bases más habituales mediante las funciones dechex(), decoct() y decbin(). Lo vemos en primerCambio.php.

<?php

$valorDecimal = 186;

$valorBinario = decbin($valorDecimal);

$valorOctal = decoct($valorDecimal);

$valorHexa = dechex($valorDecimal);

echo "El valor decimal es: ".$valorDecimal."<br />";

echo "El valor binario es: ".$valorBinario."<br />";

echo "El valor octal es: ".$valorOctal."<br />";

echo "El valor hexadecimal es: ".$valorHexa."<br />";

?>

El resultado lo vemos a continuación:

El valor decimal es: 186

El valor binario es: 10111010

El valor octal es: 272

El valor hexadecimal es: ba

Como ves, el cambio de base de numeración no puede ser más fácil y rápido. Además, PHP nos ofrece las funciones inversas, para pasar un número hexadecimal, octal, o binario a decimal. Son hexdec(), octdec() y bindec(), respectivamente. Lo vemos en conversionesADecimal.php.

<?php

$valorBinario = '01101111';

$valorOctal = '5670254';

$valorHexa = '54f8d1';

$valorDecimalDelBinario = bindec($valorBinario);

$valorDecimalDelOctal = octdec($valorOctal);

$valorDecimalDelHexa = hexdec($valorHexa);

echo "El valor binario es: ".$valorBinario."<br />";

echo "El binario expresado en decimal es: ".$valorDecimalDelBinario."<br />";

echo "El valor octal es: ".$valorOctal."<br />";

echo "El octal expresado en decimal es: ".$valorDecimalDelOctal."<br />";

echo "El valor hexadecimal es: ".$valorHexa."<br />";

echo "El hexadecimal expresado en decimal es: ".$valorDecimalDelHexa."<br />";

?>

Pruébalo para ver el resultado. Ten en cuenta que no podemos usar dígitos que no existan en la base de numeración con la que estamos trabajado, Por ejemplo, en un número binario sólo podremos usar los dígitos 0 y 1, en un octal, del 0 al 7, y así, sucesivamente. Además, observa que los valores en distintas bases de numeración los hemos expresado como cadenas (entre comillas). Esto debe ser así siempre en el caso de los binarios. En el caso de los octales, podemos expresarlos sin comillas, precediéndolos con un 0. En el caso de los hexadecimales los precederemos con 0x. Lo vemos en el ejemplo a continuación:

<?php

$valorOctal = 05670254;

$valorHexa = 0x54f8d1;

$valorDecimalDelOctal = octdec($valorOctal);

$valorDecimalDelHexa = hexdec($valorHexa);

echo "El valor octal es: ".$valorOctal."<br />";

echo "El octal expresado en decimal es: ".$valorDecimalDelOctal."<br />";

echo "El valor hexadecimal es: ".$valorHexa."<br />";

echo "El hexadecimal expresado en decimal es: ".$valorDecimalDelHexa."<br />";

?>

También tenemos una función de conversión entre bases de numeración más flexible. Se trata de base_convert(). Esta función recibe tres argumentos. El primero es el número a convertir, el segundo es la base en la que está y el tercero la base en la que lo queremos. Las bases pueden ir de 2 a 36.

 

 


Post date: 2016-04-29 20:22:32
Post date GMT: 2016-04-29 20:22:32
Post modified date: 2016-10-06 09:35:49
Post modified date GMT: 2016-10-06 09:35:49

Powered by [ Universal Post Manager ] plugin. MS Word saving format developed by gVectors Team www.gVectors.com