$int = 123; // decimal number
$int = -123; // a negative number
$oct = 0123; // octal number (equivalent to 83 decimal)
$hex = 0x1A; // hexadecimal number (equivalent to 26 decimal)
$int = -123; // a negative number
$oct = 0123; // octal number (equivalent to 83 decimal)
$hex = 0x1A; // hexadecimal number (equivalent to 26 decimal)
$bin = 0b11111111; // binary number (equivalent to 255 decimal)
Рассмотрим как можно перевести например из 16-тиричной системы в 10-тичную. Для этого есть несколько способ: либо явно intval($hex), либо неявно strval($hex). Оба способа полезны, для примера использования неявного способа реализуем функцию по получению ascii - символов по их числовому представлению.
function hex2str($hex) {
$str = "";
if (is_array($hex)) {
foreach($hex as $val) {
// неявный способ
$str = "";
if (is_array($hex)) {
foreach($hex as $val) {
// неявный способ
$str .= chr(strval($val));
}
}
if (is_string($hex)) {
for ($i=0, $length = strlen($hex); $i < $length; $i += 2) {
$str .= chr(hexdec(substr($hex, $i, 2)));
}
}
return $str;
}
}
if (is_string($hex)) {
for ($i=0, $length = strlen($hex); $i < $length; $i += 2) {
$str .= chr(hexdec(substr($hex, $i, 2)));
}
}
return $str;
}
$hex = "48656C6C6F2C20776F726C64210D0A00";
$hexArray = array(0x48, 0x65, 0x6C, 0x6C,
0x6F, 0x2C, 0x20, 0x77,
0x6F, 0x72, 0x6C, 0x64,
0x21, 0x0D, 0x0A, 0x00);
$str1 = hex2str($hex);
$str2 = hex2str($hexArray);
echo $str1; // Hello, world!
echo $str2; // Hello, world!
Кстати, функция echo $hex перед выводом производит неявное преобразование числа в десятичную систему (strval($hex)).