J'ai un type d'utilisateur dans des adresses telles que 0x20005c98, que j'appelle dans la méthode POST en utilisant req.body.var
. Cependant, j'ai besoin de ce numéro en petit-boutiste pour qu'il affiche 0x985c0020. Est-ce que quelqu'un sait comment convertir ce nombre en petit endian dans le nœud js? Y a-t-il un moyen facile de faire ça?? Le npm network-byte-order est une option ??
2 réponses
var n = 0x20005c98;
var s = n.toString(16).match(/.{1,2}/g);
s.push("0x");
s.reverse().join("").toString(16); // ==> "0x985c0020" (= 2556166176)
Version 2.6x plus rapide qui est également plus facile à comprendre car elle fait explicitement ce que vous avez demandé. Mais il suppose un entier de 4 octets.
var n = 0x20005c98;
function ReverseEndian(x) {
buf = Buffer.allocUnsafe(4)
buf.writeUIntLE(x, 0, 4)
return buf.readUIntBE(0, 4)
}
ReverseEndian(n)
J'ai utilisé ça pour chronométrer des trucs :
function timeit(n, x, args) {
console.time("xxx")
for (i=0;i<n;++i) {
x.apply(null, args)
}
console.timeEnd("xxx")
}
Questions connexes
De nouvelles questions
node.js
Node.js est un runtime d'E / S asynchrone basé sur des événements, non bloquant qui utilise le moteur JavaScript V8 de Google et la bibliothèque libuv. Il est utilisé pour développer des applications qui font un usage intensif de la possibilité d'exécuter JavaScript à la fois sur le client et sur le serveur et bénéficient donc de la réutilisation du code et de l'absence de changement de contexte.