Maison >développement back-end >tutoriel php >Explication détaillée des exemples de code et de fonctions sur la façon d'implémenter la conversion entre plusieurs systèmes hexadécimaux en PHP

Explication détaillée des exemples de code et de fonctions sur la façon d'implémenter la conversion entre plusieurs systèmes hexadécimaux en PHP

伊谢尔伦
伊谢尔伦original
2017-07-17 11:12:331764parcourir

Un, décimal conversion décimale

1, fonction décimale en binaire decbin(), l'exemple suivant

echo decbin(12); //输出 1100 
echo decbin(26); //输出 11010

decbin
(PHP 3, PHP 4, PHP 5)
decbin -- Convertir un décimal en binaire
Description
chaîne decbin (numéro int)
Renvoyer unString, contenant la représentation binaire du paramètre numérique donné. La valeur maximale pouvant être convertie est 4294967295 en décimal, ce qui donne une chaîne de 32 unités.

2, fonction décimal en octal decoct()

echo decoct(15); //输出 17 
echo decoct(264); //输出 410

decoct
(PHP 3, PHP 4, PHP 5)
decoct -- Convertir le décimal en Octal
Description
string decoct ( int number )
Renvoie une chaîne contenant la représentation octale du paramètre numérique donné. La valeur maximale pouvant être convertie est 4294967295 en décimal, ce qui donne "37777777777".

3, fonction décimale en hexadécimale dechex()

echo dechex(10); //输出 a 
echo dechex(47); //输出 2f

dechex
(PHP 3, PHP 4, PHP 5)
dechex -- Convertir la décimale en hexadécimal
Description
string dechex ( int number )
Renvoie une chaîne contenant la représentation hexadécimale du paramètre numérique donné. La valeur maximale pouvant être convertie est 4294967295 en décimal, ce qui donne "ffffffff".

<?php 
/** 
*十进制转二进制、八进制、十六进制 不足位数前面补零* 
* 
* @param array $datalist 传入数据array(100,123,130) 
* @param int $bin 转换的进制可以是:2,8,16 
* @return array 返回数据 array() 返回没有数据转换的格式 
*/ 
function decto_bin($datalist,$bin) 
{ 
static $arr=array(0,1,2,3,4,5,6,7,8,9,&#39;A&#39;,&#39;B&#39;,&#39;C&#39;,&#39;D&#39;,&#39;E&#39;,&#39;F&#39;); 
if(!is_array($datalist)) $datalist=array($datalist); 
if($bin==10)return $datalist; //相同进制忽略 
$bytelen=ceil(16/$bin); //获得如果是$bin进制,一个字节的长度 
$aOutChar=array(); 
foreach ($datalist as $num) 
{ 
$t=""; 
$num=intval($num); 
if($num===0)continue; 
while($num>0) 
{ 
$t=$arr[$num%$bin].$t; 
$num=floor($num/$bin); 
} 
$tlen=strlen($t); 
if($tlen%$bytelen!=0) 
{ 
$pad_len=$bytelen-$tlen%$bytelen; 
$t=str_pad("",$pad_len,"0",STR_PAD_LEFT).$t; //不足一个字节长度,自动前面补充0 
} 
$aOutChar[]=$t; 
} 
return $aOutChar; 
}

2, conversion binaire

1, fonction binaire en hexadécimal bin2hex()

$binary = "11111001"; 
$hex = dechex(bindec($binary)); 
echo $hex;//输出f9

bin2hex
(PHP 3 >= 3.0.9, PHP 4, PHP 5)
bin2hex -- Convertir des données binaires en représentation hexadécimale
Instructions
string bin2hex (string str)
Renvoie une chaîne ASCII, qui est la représentation hexadécimale du paramètre str. La conversion utilise le mode octet, le quartet élevé étant prioritaire.

2, conversion binaire en décimal fonction bindec()

echo bindec(&#39;110011&#39;); //输出 51 
echo bindec(&#39;000110011&#39;); //输出 51 
echo bindec(&#39;111&#39;); //输出 7

bindec
(PHP 3, PHP 4, PHP 5)
bindec -- Conversion binaire en décimal
Description
numéro bindec ( string binaire_string )
Renvoie l'équivalent décimal du nombre binaire représenté par le paramètre binaire_string.
bindec() convertit un nombre binaire en entier. Le plus grand nombre pouvant être converti est de 31 chiffres, soit 2147483647 en décimal. À partir de PHP 4.1.0, cette fonction peut gérer de grandes valeurs, auquel cas elle renvoie un type float.

<?php 
/** 
*二进制、八进制、十六进制 转十进制* 
* 
* @param array $datalist 传入数据array(df,ef) 
* @param int $bin 转换的进制可以是:2,8,16 
* @return array 返回数据 array() 返回没有数据转换的格式 
*/ 
function bin_todec($datalist,$bin) 
{ 
static $arr=array(&#39;0&#39;=>0,&#39;1&#39;=>1,&#39;2&#39;=>2,&#39;3&#39;=>3,&#39;4&#39;=>4,&#39;5&#39;=>5,&#39;6&#39;=>6,&#39;7&#39;=>7,&#39;8&#39;=>8,&#39;9&#39;=>9,&#39;A&#39;=>10,&#39;B&#39;=>11,&#39;C&#39;=>12,&#39;D&#39;=>13,&#39;E&#39;=>14,&#39;F&#39;=>15); 
if(!is_array($datalist))$datalist=array($datalist); 
if($bin==10)return $datalist; //为10进制不转换 
$aOutData=array(); //定义输出保存数组 
foreach ($datalist as $num) 
{ 
$atnum=str_split($num); //将字符串分割为单个字符数组 
$atlen=count($atnum); 
$total=0; 
$i=1; 
foreach ($atnum as $tv) 
{ 
$tv=strtoupper($tv); 
if(array_key_exists($tv,$arr)) 
{ 
if($arr[$tv]==0)continue; 
$total=$total+$arr[$tv]*pow($bin,$atlen-$i); 
} 
$i++; 
} 
$aOutData[]=$total; 
} 
return $aOutData; 
}

Trois, conversion octale

Fonction octdec() octale en décimale

echo octdec(&#39;77&#39;); //输出 63 
echo octdec(decoct(45)); //输出 45

octdec
(PHP 3, PHP 4, PHP 5)
octdec -- Convertir l'octal en décimal
Description
number octdec ( string octal_string )
Renvoie l'octal représenté par octal_string paramètre L'équivalent décimal d'un nombre. La plus grande valeur pouvant être convertie est 17777777777 ou 2147483647 en décimal. À partir de PHP 4.1.0, cette fonction peut gérer de grands nombres, auquel cas elle renvoie un type float.

Quatre conversion hexadécimale

Fonction hexadécimale en décimale hexdec()

var_dump(hexdec("See")); 
var_dump(hexdec("ee")); 
// both print "int(238)" 
var_dump(hexdec("that")); // print "int(10)" 
var_dump(hexdec("a0")); // print "int(160)"

hexdec
(PHP 3, PHP 4, PHP 5)
hexdec -- Convertir un hexadécimal en décimal
Description
number hexdec ( string hex_string )
Return L'équivalent décimal du nombre hexadécimal représenté par le paramètre hex_string. hexdec() Convertit une chaîne hexadécimale en nombre décimal. La valeur maximale pouvant être convertie est 7ffffffff, soit 2147483647 en décimal. À partir de PHP 4.1.0, cette fonction peut gérer de grands nombres, auquel cas elle renvoie un type float.
hexdec() remplace tous les caractères non hexadécimaux rencontrés par 0. De cette façon, tous les zéros à gauche sont ignorés, mais les zéros à droite sont inclus dans la valeur.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn