Maison > Article > développement back-end > Explication détaillée du code ASCII et de l'exemple de code de la fonction de conversion de base en PHP
Le tableau de comparaison des codes ASCII est divisé en deux unités
1, caractères de contrôle 0-31 et 127
2, caractères affichables 32-126
(1) 48~57 sont 0 à 9 dix chiffres arabes ;
(2) 65 à 90 sont 26 lettres anglaises majuscules
(3) 97 à 122 sont 26 lettres anglaises minuscules
(4) Autres signes de ponctuation, Opérateurs signe ; etc.;
en prenant le caractère A comme exemple
Dec représente un décimal, tel que 65
Hx représente un hexadécimal, tel que 41
Oct représente un octal, tel que 101
Char représente afficher les caractères, tels que A
Description de la fonction de conversion de caractères PHP
Pour une description spécifique de la fonction de conversion de caractères, veuillez vous référer à [Fonction PHP pour plus de détails explication Décimal, binaire, octal et hexadécimalConversion décimaleDescription de la fonction]
Fonction décimal en binaire decbin()
Fonction décimal en octal decoct()
Fonction décimal en hexadécimal dechex ()
binaire en hexadécimalbin2hex() fonction
binaire en décimal en décimal fonction bindec()
octal en décimal octdec() fonction
hex Système en décimal hexdec() fonction
Fonction arbitraire base_convert()
Exemple de conversion de caractères
Exemple 1, comment convertir un caractère en binaire, octal ou hexadécimal, vous pouvez utiliser La fonction ord() convertit d'abord les caractères en valeurs ASCII, puis utilise la fonction de conversion de base correspondante pour convertir, comme suit
a Ce caractère est converti en sa forme binaire/octale/hexadécimale, comme suit
a字符的十进制:ord('a'); //输出97 二进制:decbin(ord('a')); //输出1100001 八进制:decoct(ord('a')); //输出141 十六进制:dechex(ord('a')); //输出61
Ensuite, vous pouvez vérifier les résultats de sortie de chaque numéro de base par rapport au tableau de comparaison des codes ASCII ci-dessus.
Exemple 2, comment convertir un binaire en hexadécimal ou décimal, tel que le binaire de a, comme suit
采用实例一的方法获取a字符的二进制 decbin(ord('a')); 然后把二进制转换为十六进制或十进制 十六进制:bin2hex(decbin(ord('a')));//输出31313030303031 二进制J:bindec(decbin(ord('a'))); //输出97
Un exemple de code pour une conversion mutuelle :
class ascii { function decode($str) { preg_match_all( "/(d{2,5})/", $str,$a); $a = $a[0]; foreach ($a as $dec) { if ($dec < 128) { $utf .= chr($dec); } else if ($dec < 2048) { $utf .= chr(192 + (($dec - ($dec % 64)) / 64)); $utf .= chr(128 + ($dec % 64)); } else { $utf .= chr(224 + (($dec - ($dec % 4096)) / 4096)); $utf .= chr(128 + ((($dec % 4096) - ($dec % 64)) / 64)); $utf .= chr(128 + ($dec % 64)); } } return $utf; } function encode($c) { $len = strlen($c); $a = 0; while ($a < $len) { $ud = 0; if (ord($c{$a}) >=0 && ord($c{$a})< =127) { $ud = ord($c{$a}); $a += 1; } else if (ord($c{$a}) >=192 && ord($c{$a})< =223) { $ud = (ord($c{$a})-192)*64 + (ord($c{$a+1})-128); $a += 2; } else if (ord($c{$a}) >=224 && ord($c{$a})< =239) { $ud = (ord($c{$a})-224)*4096 + (ord($c{$a+1})-128)*64 + (ord($c{$a+2})-128); $a += 3; } else if (ord($c{$a}) >=240 && ord($c{$a})< =247) { $ud = (ord($c{$a})-240)*262144 + (ord($c{$a+1})-128)*4096 + (ord($c{$a+2})-128)*64 + (ord($c{$a+3})-128); $a += 4; } else if (ord($c{$a}) >=248 && ord($c{$a})< =251) { $ud = (ord($c{$a})-248)*16777216 + (ord($c{$a+1})-128)*262144 + (ord($c{$a+2})-128)*4096 + (ord($c{$a+3})-128)*64 + (ord($c{$a+4})-128); $a += 5; } else if (ord($c{$a}) >=252 && ord($c{$a})< =253) { $ud = (ord($c{$a})-252)*1073741824 + (ord($c{$a+1})-128)*16777216 + (ord($c{$a+2})-128)*262144 + (ord($c{$a+3})-128)*4096 + (ord($c{$a+4})-128)*64 + (ord($c{$a+5})-128); $a += 6; } else if (ord($c{$a}) >=254 && ord($c{$a})< =255) { //error $ud = false; } $scill .= "&#$ud;"; } return $scill; }
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!