Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将32位无符号整数转换为大端字节数组的最稳定方法?_Javascript_Arrays_Node.js_Type Conversion_Unsigned Integer - Fatal编程技术网

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

Javascript 将32位无符号整数转换为大端字节数组的最稳定方法?,javascript,arrays,node.js,type-conversion,unsigned-integer,Javascript,Arrays,Node.js,Type Conversion,Unsigned Integer,如果需要,将给定的(无符号)整数转换为具有大端号和填充的四字节数组的最稳定和最简单的方法是什么?下面是一个例子: 输入值: 714 输出:这个字节数组 [0xca,0x02,0x00,0x00] 顺便说一句:一个npm模块也可以做到这一点 背景:我需要这个字节数组作为通过node.js中的TCP套接字发送的XML消息的前缀。因此,我有一个发送缓冲区(一个字节数组),我在其中放入前缀,然后缓冲区的其余部分被XML消息的字节填充。下面的函数应该为您提供一个big-endian格式的字符串 函数to

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

输入值:
714

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

顺便说一句:一个npm模块也可以做到这一点


背景:我需要这个字节数组作为通过node.js中的TCP套接字发送的XML消息的前缀。因此,我有一个发送缓冲区(一个字节数组),我在其中放入前缀,然后缓冲区的其余部分被XML消息的字节填充。

下面的函数应该为您提供一个big-endian格式的字符串

函数toBigEndian(n){
返回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)
.减少((p,c,i,a)=>i控制台日志(toBigEndian(20171453))
您的示例是否未通过
0x2ca
转换为
ca 02 00 00
转换为big-endian?您当然是对的。。。修好了。谢谢谢谢你,热度,这真是一种神奇的魔力我将尝试调整您的解决方案,使其返回字节数组。我认为我在我的示例中没有足够清楚地表述它,我需要一个字节数组,比如var myArray=[0xca,0x02,0x00,0x00];好吧,我有点困惑。。。我可以假设您想用相应的字节值填充数组吗。。?我对我的答案做了补充,请检查我是否接近。是的,这正是我想要实现的。现在可以了,再次感谢!