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

PHPz
Libérer: 2023-03-29 10:21:16
original
681 Les gens l'ont consulté

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的十六进制
Copier après la connexion

Le résultat de sortie est le suivant :

35的二进制是:100011
35的八进制是:43
35的十六进制是:23
Copier après la connexion

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";  // 输出十六进制的十进制转换结果
Copier après la connexion

Le résultat de sortie est le suivant :

100011的十进制是:35
43的十进制是:35
23的十进制是:35
Copier après la connexion

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
Copier après la connexion

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

require 'vendor/autoload.php';
Copier après la connexion

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";
Copier après la connexion

Le résultat de sortie est le suivant :

创建的8位bitset为:00000000
Copier après la connexion

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,输出结果
Copier après la connexion

Le résultat de sortie est le suivant :

原数字:35,补位结果:00100010
Copier après la connexion

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!

Étiquettes associées:
php
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