Comment implémenter des fonctions liées à la conversion décimale, binaire, octale et hexadécimale en PHP

墨辰丷
Libérer: 2023-03-27 17:14:01
original
3052 Les gens l'ont consulté

Cet article présente principalement l'utilisation des fonctions liées à la conversion décimale, binaire, octale et hexadécimale en PHP. Il analyse en détail les fonctions, les paramètres et l'utilisation de diverses fonctions de conversion hexadécimales courantes en PHP sur la base d'exemples spécifiques. , les amis dans le besoin peuvent se référer à ce qui suit

1. Binaire :

Conversion binaire en décimal :

.

Fonction : bindec(string $binary_string)

@param $binary_string Le paramètre représente la chaîne binaire à convertir.
@return Renvoie l'équivalent décimal du nombre binaire représenté par le paramètre $binary_string.

Description de la fonction :

bindec()Convertissez un nombre binaire en type entier ou en type flottant en raison des exigences de taille.
bindec()Interprète toutes les valeurs $binary_string comme des entiers non signés. En effet, la fonction bindec() traite son bit le plus significatif comme la grandeur plutôt que comme le bit de signe. [C'est-à-dire que le bit le plus élevé 0 ou 1 n'est pas représenté par + ou - par bindec(), mais est représenté par la valeur 1 est 1 et 0 est 0]

Remarque : . les paramètres doivent être des chaînes de caractères, l'utilisation d'autres types de données entraînera des résultats imprévisibles.

Exemple :

<?php
  echo bindec(&#39;10010&#39;) . "\n";
  echo bindec(&#39;00110&#39;) . "\n";
  echo bindec(&#39;1111&#39;) . "\n";
Copier après la connexion

Les instructions de programme ci-dessus seront affichées dans l'ordre : 18, 6, 15

1.2. Fonction

binaire vers hexadécimal : bin2hex(string $str)

@param $str Chaîne de caractères ASCII à convertir.
@return Renvoie la valeur hexadécimale de la chaîne convertie.

Description de la fonction :

bin2hex() La fonction convertit une chaîne de caractères ASCII en une valeur hexadécimale. Les chaînes peuvent être reconverties à l’aide de la fonction pack().
bin2hex() La conversion des fonctions utilise le mode octet, les quartets élevés étant prioritaires.

Exemple :

(1)bin2hex()Convertir 'chengdu' en valeur hexadécimale :

<?php
  $str = bin2hex(&#39;chengdu&#39;);
  echo $str;
Copier après la connexion

Le L'instruction de programme ci-dessus affichera : 6368656e676475

(2) Convertissez une valeur de chaîne de binaire en hexadécimal, puis reconvertissez-la :

<?php
  $str = &#39;chengdu&#39;;
  echo bin2hex($str) . "<br/>";
  echo pack("H*", bin2hex($str)) . "<br/>";
Copier après la connexion

Les instructions du programme ci-dessus sont sorties dans l'ordre : 6368656e676475, chengdu

2 Octal :

2.1. decimal :

Fonction : octdec(string $octal_string)

@param $octal_string Le paramètre représente la chaîne octale à convertir.
@return Renvoie l'équivalent décimal du nombre octal représenté par le paramètre $octal_string.

Description de la fonction :

octdec() peut gérer de grands nombres entiers, mais dans ce cas, il renverra le type float.

Exemple :

<?php
  echo octdec( &#39;010&#39; ) . "\n";
  echo octdec( decoct( 45 ) );
Copier après la connexion

L'instruction de programme ci-dessus affichera : 8, 45

3. Décimal :

3.1. Décimal vers binaire :

Fonction : decbin(int $number)

@param $number obligatoire Pour les nombres décimaux convertis, la valeur maximale pouvant être convertie est 4294967295 en décimal et le résultat decbin est une chaîne de 32 unités.
@return Renvoie la chaîne binaire après la conversion du nombre décimal.

Description de la fonction :

decbin()La valeur décimale maximale que la fonction peut convertir est 4294967295, et le résultat est une chaîne de 32 unités.

Exemple :

<?php
  echo decbin ( 10 ) . "\n";
  echo decbin ( 50 );
Copier après la connexion

L'instruction de programme ci-dessus affichera : 1010, 110010

3.2. Système décimal Convertir en octal :

Fonction : decoct(int $number)

@param $number Le nombre décimal à convertir, la valeur maximale pouvant être convertie est 4294967295 en décimal, le résultat decoct() est "37777777777".
@return Renvoie une chaîne contenant la représentation octale du paramètre $number donné.

Description de la fonction :

decoct()La valeur décimale maximale que la fonction peut convertir est 4294967295, et le résultat est "37777777777".

Exemple :

<?php
  echo decoct ( 10 ) . "\n" ;
  echo decoct ( 50 );
Copier après la connexion

Les instructions de programme ci-dessus seront sorties dans l'ordre : 12, 62

3.3. Décimal en hexadécimal :

Fonction : dechex(int $number)

@param $number Le nombre décimal à convertir.
@return Renvoie une chaîne contenant la représentation hexadécimale du paramètre $number donné.

Description de la fonction :

dechex()La valeur décimale maximale que la fonction peut convertir est : PHP_INT_MAX*2 +/- 1, qui est décimal sur un 32- système de bits 4294967295, le résultat de dechex() est ffffffff.

注意:PHP的Integer类型是有符号的,但是dechex()只能处理无符号整数,负整数会以无符号来处理。

范例:

<?php
  echo dechex ( 10 ) . "\n" ;
  echo dechex ( 58 );
Copier après la connexion

以上程序语句会依次输出:a, 3a

4.十六进制:

4.1.十六进制转二进制:

函数:hex2bin(string $data); 转换十六进制字符串为二进制字符串

@param $data 使用十六进制表示的数据。
@return 返回给定数据的二进制字符串或者在失败时返回FALSE。

函数说明:

如果输入的十六进制字符串是奇数长度或者是无效的十六进制字符串,则会抛出一个E_WARNING级别的错误。

范例:

<?php
  $hex = hex2bin ( "6368656e67206475" );
  echo $hex;
Copier après la connexion

以上程序语句会输出:cheng du

4.2十六进制转十进制:

函数:hexdec(string $hex_string); 转换十六进制字符串为二进制字符串

@param $hex_string 将要转换的十六进制的字符串。
@return 返回与$hex_string参数所表示的十六进制数等值的十进制数。

函数说明:

hexdec()会忽略它遇到的任意非十六进制的字符。

PHP 4.1.0 开始,该函数可以处理 integer大数字,这种情况下,它会返回float类型。

范例:

<?php
  var_dump ( hexdec ( "See" ));
  var_dump ( hexdec ( "ee" ));
  // 上面两个都输出: "int(238)"
  var_dump ( hexdec ( "that" )); // 输出"int(10)"
  var_dump ( hexdec ( "a0" )); // 输出"int(160)"
  //通过上面的例子可以看出来:hexdec()会忽略它遇到的任意非十六进制的字符。
Copier après la connexion

5.任意进制转换的base_convert() 函数:

函数:base_convert(string $number, int $frombase, int $tobase)

@param $number 将要转换的的数。
@param $frombase参数$number的进制。
@param $tobase 将要转换成的进制。
@return 返回一个包含$number以$tobase进制表示的字符串。

函数说明:

$number本身的进制由$formbase来指定。
$formbase和$tobase都只能是2和36(包括2和36)之间的整数值。

注意:由于使用内部的 "double" 或 "float" 类型,base_convert()的操作可能会导致大数值中的精度丢失。

范例:

<?php
  $hexadecimal = &#39;A37334&#39; ;
  echo base_convert ( $hexadecimal , 16 , 2 );
  //print 101000110111001100110100
  echo base_convert ( $hexadecimal , 16 , a);
  //print 10711860
Copier après la connexion

以上就是本文的全部内容,希望对大家的学习有所帮助。


相关推荐:

php简单实现数组分页的方法_php技巧

php使用ffmpeg获取视频信息并截图的实现方法_php技巧

thinkphp项目部署到Linux服务器上报错“模板不存在”如何解决_php技巧

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!