最稳定的方式将一个32位无符号整数转换为大端字节数组?

如果需要,将给定(无符号)整数转换为大字节和填充的四字节数组,最稳定和最简单的方法是什么? 这是一个例子:

input值: 714

输出:这个字节数组[ 0xca, 0x02, 0x00, 0x00 ];

顺便说一句:能够做到这一点的npm模块也可以。

背景:我需要这个字节数组作为通过node.js中的TCP套接字发送的XML消息的前缀。 所以我有一个发送缓冲区(一个字节数组),其中我把前缀,然后其余的缓冲区充满了XML消息的字节。

       

网上收集的解决方案 "最稳定的方式将一个32位无符号整数转换为大端字节数组?"

下面的函数应该给你一个大的字节格式的string。

 function toBigEndian(n){ return n.toString(16) .match(/[\da-f]/g) .reduceRight((r,c,i,a) => (a.length-i)%2 ? r.concat(c) : (r[r.length-1] = c + r[r.length-1],r),[]) .map(s => s.length === 1 ? 0+s : s) .reduce((p,c,i,a) => i < a.length-1 ? p + " " + c : p + " " + c + " 00".repeat(~~((4-a.length)))); } console.log(toBigEndian(714)); console.log(toBigEndian(20171453));