Nodejs est une solution JavaScript back-end très puissante qui a été largement utilisée dans la programmation côté serveur. Le type Buffer est également l'une des fonctionnalités importantes de Nodejs.
Dans Nodejs, l'objet Buffer est principalement utilisé pour traiter des données binaires, il est donc généralement utilisé dans des scénarios tels que la communication réseau et la persistance des données (comme la lecture et l'écriture de fichiers).
Dans le travail réel, nous rencontrons souvent des scénarios où nous devons convertir des données de type Buffer en un type numérique en JavaScript, cet article présentera donc la solution à ce problème.
Dans Nodejs, convertir une donnée binaire en nombre décimal est facile, utilisez simplement Utilisez simplement la méthode readInt de la classe Buffer. Les paramètres pris en charge par la méthode readInt incluent le nombre d'octets, le décalage et l'utilisation ou non d'entiers non signés.
Par exemple, pour une donnée de type Buffer de 8 octets, vous pouvez utiliser l'instruction suivante pour la convertir en nombre décimal :
let buffer = Buffer.from([0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF]); let number = buffer.readIntBE(0, 8); console.log(number); //输出为78187493520
Dans le code ci-dessus, le Buffer La méthode .from est utilisée pour convertir. Un objet Buffer d'une longueur de 8 octets est créé. Utilisez ensuite la méthode readIntBE pour le traiter en nombre décimal.
En plus de traiter les données du Buffer en un nombre décimal, vous pouvez également les traiter en un nombre décimal. Il est traité comme un nombre hexadécimal. Ceci peut être réalisé grâce à la méthode toString fournie avec Nodejs.
let buffer = Buffer.from([0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF]); let hex = buffer.toString('hex'); console.log(hex); // 输出为:1234567890abcdef
Il convient de noter que lors du traitement des objets Buffer sous forme de nombres, les données doivent être considéré comme l'ordre des octets. Normalement, nous devons déterminer l'ordre des octets des données en fonction de la source et des besoins d'utilisation des données.
Dans Nodejs, vous pouvez utiliser les méthodes BE et LE courantes pour déterminer l'ordre des octets. BE fait référence à l'ordre big endian et LE fait référence à l'ordre small endian.
BE : stockez les données dans l'ordre de l'octet de poids fort à l'octet de poids faible, c'est-à-dire l'octet de poids fort en premier et l'octet de poids faible en dernier.
LE : stockez les données dans l'ordre de l'octet faible à l'octet élevé, c'est-à-dire l'octet faible en premier et l'octet élevé en dernier.
Par exemple, pour une donnée Buffer de 2 octets, l'une est BE et l'autre est LE :
let BE_Buffer = Buffer.from([0x12, 0x34]); let LE_Buffer = Buffer.from([0x34, 0x12]); console.log(BE_Buffer.readIntBE(0, 2)); // 输出为: 4660 console.log(BE_Buffer.readUIntBE(0, 2)); // 输出为: 4660 console.log(LE_Buffer.readIntLE(0, 2)); // 输出为: 4660 console.log(LE_Buffer.readUIntLE(0, 2)); // 输出为: 4660
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!