BASE_CONVERT |
Conversion de base |
---|---|
PHP 4.0+ |
Syntaxe
function base_convert($number,$frombase,$tobase); |
Paramètres
Nom | Description | |
---|---|---|
$number | Ce paramètre permet d'indiquer le nombre à traiter | |
$frombase | Ce paramètre permet d'indiquer la base actuel du nombre : | |
Valeur | Description | |
2 | Cette valeur permet d'indiquer une base binaire. | |
8 | Cette valeur permet d'indiquer une base octal. | |
10 | Cette valeur permet d'indiquer une base décimal. | |
16 | Cette valeur permet d'indiquer une base hexadécimal. | |
... | ... | |
$tobase | Ce paramètre permet d'indiquer la nouvelle base du nombre : | |
Valeur | Description | |
2 | Cette valeur permet d'indiquer une base binaire. | |
8 | Cette valeur permet d'indiquer une base octal. | |
10 | Cette valeur permet d'indiquer une base décimal. | |
16 | Cette valeur permet d'indiquer une base hexadécimal. | |
... | ... |
Retour
Valeur | Description |
---|---|
Chaine de caractères | Ce type de données permet d'indiquer un nombre selon la base spécifié. |
Description
Cette fonction permet de convertir un nombre d'une base numérique à un autre base numérique.
Remarques
- Conversion entre bases différentes : La fonction base_convert permet de convertir un nombre d'une base donnée (entre 2 et 36) vers une autre base dans la même intervalle. Elle est utile pour des applications où les données doivent être interprétées ou transmises sous différents formats numériques, comme les bases binaires, octales, ou hexadécimales.
- Valeurs en chaîne de caractères : Les paramètres pour le nombre, la base source et la base cible doivent être fournis sous forme de chaînes de caractères. Cela peut surprendre, car d'autres fonctions similaires en PHP utilisent des types numériques. Il faut donc s'assurer que les entrées sont correctement formatées.
- Support des lettres pour les bases supérieures à 10 : La fonction gère les bases supérieures à 10 en utilisant les lettres de l'alphabet. Par exemple, en base 16, a représente 10 et f représente 15. De même, en base 36, les chiffres et les lettres de a à z sont utilisés pour représenter les valeurs.
- Résultat limité aux nombres positifs : base_convert ne prend pas en charge les nombres négatifs. Si vous essayez de convertir un nombre négatif, la fonction interprétera simplement le signe négatif comme une partie de la chaîne de caractères, ce qui peut entraîner des résultats inattendus ou des erreurs.
- Limitation à l'intervalle des bases : Les bases source et cible doivent impérativement être comprises entre 2 et 36. Si une base en dehors de cet intervalle est fournie, la fonction renverra une erreur ou un comportement imprévisible. Cela limite son utilisation pour des bases exotiques comme la base 64.
- Perte de précision avec de grands nombres : Pour des nombres très grands, notamment au-delà de la capacité d'un entier de PHP (souvent 32 ou 64 bits selon la plateforme), le résultat peut devenir imprécis ou incorrect. Il est conseillé d'utiliser des bibliothèques comme GMP ou BC Math dans de tels cas.
- Non prise en charge des fractions : La fonction base_convert ne prend en charge que les entiers. Si vous essayez de convertir un nombre fractionnaire, il faudra soit arrondir ou tronquer le nombre avant la conversion, soit utiliser une autre méthode ou bibliothèque.
- Sensibilité à la casse des lettres : base_convert ne fait pas de distinction entre les majuscules et les minuscules pour les bases supérieures à 10. Par exemple, base_convert('a', 16, 10) et base_convert('A', 16, 10) donneront tous deux le résultat 10. Cela simplifie la gestion des entrées pour les bases hexadécimales et au-delà.
Voir également
Système - Nombre - Hexadécimal
Références
PHP 4 - Guide du développeur, Edition First Interactive, Blake Schwendiman, 2002, ISBN: 2-84427-283-5, page 371
Dernière mise à jour : Mercredi, le 25 mars 2015