Maison  >  Article  >  développement back-end  >  Comment implémenter la conversion hexadécimale et le remplissage de bits en php

Comment implémenter la conversion hexadécimale et le remplissage de bits en php

PHPz
PHPzoriginal
2023-03-29 10:13:51623parcourir

PHP est un langage de script côté serveur largement utilisé dans le domaine du développement Web. Le traitement des opérations numériques constitue également une partie importante de PHP. Dans les opérations numériques, la conversion de base et le complément sont deux concepts clés. Cet article présentera en détail les opérations de conversion de base et de remplissage en PHP pour aider les lecteurs à mieux comprendre et utiliser ces deux opérations.

1. Conversion de base

1.1 Convertir des nombres décimaux vers d'autres bases

PHP fournit des fonctions pour convertir des nombres décimaux vers d'autres bases, parmi lesquelles les plus couramment utilisées sont les fonctions decbin(), decoct() et dechex(). Ces fonctions convertissent respectivement les nombres décimaux en chaînes binaires, octales et hexadécimales et renvoient les résultats.

L'exemple de code est le suivant :

$decimal_num = 35;
$bin_num = decbin($decimal_num);  // 二进制
$oct_num = decoct($decimal_num);  // 八进制
$hex_num = dechex($decimal_num);  // 十六进制
echo "{$decimal_num}的二进制是:{$bin_num}\n";  // 输出35的二进制
echo "{$decimal_num}的八进制是:{$oct_num}\n";  // 输出35的八进制
echo "{$decimal_num}的十六进制是:{$hex_num}\n";  // 输出35的十六进制

Le résultat de sortie est le suivant :

35的二进制是:100011
35的八进制是:43
35的十六进制是:23

1.2 Conversion d'autres bases en décimales

Correspond à la conversion de nombres décimaux en d'autres bases est l'opération de conversion d'autres nombres de base en décimales, dans Les fonctions PHP correspondantes sont également fournies, à savoir les fonctions bindec(), octdec() et hexdec(). Ces fonctions convertissent les chaînes binaires, octales et hexadécimales en entiers décimaux et renvoient les résultats.

L'exemple de code est le suivant :

$bin_num = '100011';
$oct_num = '43';
$hex_num = '23';
$decimal_num_from_bin = bindec($bin_num);  // 二进制转十进制
$decimal_num_from_oct = octdec($oct_num);  // 八进制转十进制
$decimal_num_from_hex = hexdec($hex_num);  // 十六进制转十进制
echo "{$bin_num}的十进制是:{$decimal_num_from_bin}\n";  // 输出二进制的十进制转换结果
echo "{$oct_num}的十进制是:{$decimal_num_from_oct}\n";  // 输出八进制的十进制转换结果
echo "{$hex_num}的十进制是:{$decimal_num_from_hex}\n";  // 输出十六进制的十进制转换结果

Le résultat de sortie est le suivant :

100011的十进制是:35
43的十进制是:35
23的十进制是:35

2. Opération de remplissage

Dans les ordinateurs, le stockage et les opérations numériques sont souvent effectués sous forme binaire. Parfois, nous devons « remplir » des nombres binaires, c'est-à-dire remplir le bit le plus élevé avec 0 ou 1 pour répondre aux exigences de calcul de certains types d'opérations arithmétiques. La bibliothèque bitset fournie en PHP peut effectuer de telles opérations de "remplissage de bits".

2.1 Installer la bibliothèque bitset

Pour utiliser la bibliothèque bitset, vous devez d'abord installer la bibliothèque. Les étapes d'installation sont les suivantes :

Étape 1 : Exécutez la commande suivante dans le terminal pour installer la bibliothèque bitset :

composer require lucasassis/bitset

Étape 2 : Référencez l'autoloader généré automatiquement par composer dans le code :

require 'vendor/autoload.php';

2.2 Créer une collection de bits

Utilisation de la bibliothèque bitset Avant d'effectuer l'opération de remplissage de bits, vous devez créer un jeu de bits (c'est-à-dire bitset). Un ensemble de bits est une collection de bits séquentiels, où chaque bit est un symbole binaire 0 ou 1.

La fonction pour créer un ensemble de bits est BitSet::create(), et son paramètre est le nombre total de bits, qui peut être un entier ou une chaîne.

L'exemple de code est le suivant :

use Lucasassis\BitSet;

$num_of_bits = 8;  // 位数
$bitset = BitSet::create($num_of_bits);  // 创建8位的bitset
echo "创建的{$num_of_bits}位bitset为:{$bitset}\n";

Le résultat de sortie est le suivant :

创建的8位bitset为:00000000

2.3 Opération de remplissage

Avec le bit défini, l'opération de remplissage peut être effectuée. Par exemple, dans le calcul de l'addition binaire 1, l'opérande (c'est-à-dire le nombre à ajouter 1) doit être "renvoyé et ajouté 1" pour produire le résultat correct de l'ajout de 1.

L'exemple de code est le suivant :

use Lucasassis\BitSet;

$num_of_bits = 8;  // 位数
$number = 35;  // 要进行加1操作的数字
$bitset = BitSet::create($num_of_bits);  // 创建8位的bitset
$bitset->setValue($number);  // 将$number值存入bitset中
echo "原数字:{$number},补位结果:";
echo $bitset->not()->add(1)->asBinaryString();  // 取反加1,输出结果

Le résultat de sortie est le suivant :

原数字:35,补位结果:00100010

Dans le code ci-dessus, la fonction BitSet::setValue() est utilisée pour stocker le numéro dans le jeu de retenue, et le BitSet : La fonction :not() est utilisée pour effectuer l'opération d'inversion. La fonction BitSet::add() est utilisée pour ajouter 1 et la fonction BitSet::asBinaryString() est utilisée pour générer le résultat de la chaîne binaire.

3. Résumé

Cet article présente les opérations de conversion de base et de remplissage de bits en PHP. La conversion de base est un concept important dans les opérations informatiques et joue un rôle important dans la représentation et le traitement des données numériques. L'opération de remplissage est une opération souvent utilisée dans des algorithmes spécifiques pour améliorer les résultats des opérations sur les données numériques. J'espère que cet article pourra aider les lecteurs à mieux comprendre et appliquer ces deux opérations.

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