Buffer est un objet utilisé dans Node.js pour traiter les données binaires. Il peut jouer un rôle important dans des scénarios tels que la lecture et l’écriture de données réseau, les opérations sur les fichiers et les algorithmes de chiffrement. Dans le processus de traitement des données binaires, nous devons parfois convertir le type Buffer en d'autres types, tels que les types numériques. Cet article explique comment convertir le type Buffer en type numérique.
Avant de convertir le type Buffer en type numérique, nous devons d'abord le convertir en chaîne hexadécimale. Ceci peut être réalisé en appelant la méthode toString() de l'objet Buffer, comme indiqué ci-dessous :
const buf = Buffer.from('abcd', 'utf8'); const hexString = buf.toString('hex'); // "61626364"
Dans le code ci-dessus, nous créons d'abord un objet Buffer contenant la chaîne 'abcd', puis le convertissons en chaîne hexadécimale.
Avant de convertir une chaîne hexadécimale en un type numérique, nous devons comprendre la relation entre les types numériques et les systèmes de base. En JavaScript, les types de nombres sont représentés de différentes manières, notamment décimale, binaire, octale et hexadécimale. Parmi eux, décimal est la représentation par défaut. Si nous voulons convertir une chaîne hexadécimale en type numérique, nous devons utiliser la fonction parseInt() et spécifier le paramètre de base comme 16, comme indiqué ci-dessous :
const hexString = '61626364'; const num = parseInt(hexString, 16); // 1633837924
Dans le code ci-dessus, nous convertissons la chaîne hexadécimale '61626364'. est converti en type numérique correspondant 1633837924 et affecté à la variable num.
En plus de convertir le type Buffer en chaîne hexadécimale puis en type numérique, Node.js fournit également un moyen de convertir directement le type Buffer en type numérique. Ceci peut être réalisé en utilisant la méthode read de l'objet Buffer, comme indiqué ci-dessous :
const buf = Buffer.from([0x01, 0x02, 0x03, 0x04]); const num = buf.readUInt32BE(); // 16909060
Dans le code ci-dessus, nous créons d'abord un objet Buffer contenant la séquence d'octets [0x01, 0x02, 0x03, 0x04], puis utilisons le Méthode readUInt32BE() Convertissez-le en nombre entier non signé de 32 bits correspondant. Les paramètres de la méthode readUInt32BE() spécifient l'ordre des octets à lire, où BE représente Big Endian.
En plus des moyens de convertir le type Buffer en chaîne hexadécimale et en types de nombres, il existe certaines situations où vous devez le convertir en d'autres types de nombres, tels que Virgule flottante ou entier signé. Ceci peut être réalisé en utilisant la méthode read de l'objet Buffer et en spécifiant le nombre d'octets à lire et la méthode d'encodage, comme indiqué ci-dessous :
const buf = Buffer.from([0x41, 0xb0, 0x00, 0x00]); const num = buf.readFloatBE(); // 11
Dans le code ci-dessus, nous créons d'abord une séquence contenant les octets [0x41, 0xb0 , 0x00, 0x00 ] Objet Buffer, puis utilisez la méthode readFloatBE() pour le convertir en nombre à virgule flottante correspondant. Les paramètres de la méthode readFloatBE() spécifient l'ordre des octets et la méthode de codage de lecture, où BE représente Big Endian.
Dans cet article, nous avons présenté différentes façons de convertir le type Buffer en type numérique, notamment la conversion du type Buffer en chaîne hexadécimale, la conversion d'une chaîne hexadécimale en type numérique, la conversion directe du type Buffer Convertir en type numérique et convertir le type Buffer en d'autres types numériques genres. En comprenant ces méthodes, nous pouvons gérer les données binaires de manière plus flexible et améliorer encore l'efficacité du développement de Node.js.
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!