在客户端的javascript(wscript)中将小端二进制文件转换为int
我有一个二进制数据数组,在服务器上使用node js进行转换:在客户端的javascript(wscript)中将小端二进制文件转换为int,javascript,jscript,Javascript,Jscript,我有一个二进制数据数组,在服务器上使用node js进行转换: buffer.toString('hex'); 在缓冲区的开头添加了2个整数,如下所示: buffer.WriteInt32LE(index,0); buffer.WriteInt32LE(id,0); 最后我得到了这样一条线: var str=“1100000050000FD2595200380024” 我需要在客户端使用windows脚本环境(javascript+ActiveX)解析此字符串 如何将前两个值“1100000
buffer.toString('hex');
在缓冲区的开头添加了2个整数,如下所示:
buffer.WriteInt32LE(index,0);
buffer.WriteInt32LE(id,0);
最后我得到了这样一条线:
var str=“1100000050000FD2595200380024”
我需要在客户端使用windows脚本环境(javascript+ActiveX)解析此字符串
如何将前两个值“11000000”和“50000000”从小端字符串转换为整数,将字符串的其余部分转换为十六进制代码表示的二进制字节?浏览器中可以使用ArrayBuffer,但js是从windows脚本环境执行的
var str = "1100000050000000fd25952003800245";
var int1 = parseInt(str.substring(0,7));
var int2 = parseInt(str.substring(8,15));
alert(int1);
alert(int2);
将为您获取整数
str的其余部分有7个字节。。。还有一小口。。。fd 25 95 20 03 80 024
假设您缺少一个半字节,使其成为8字节
var hex = [str.substring(16,str.length).length/2];
这将得到具有8个位置的字节数组
var hex = [];
hex.push(str2.substring(0,2));
hex.push(str2.substring(2,4));
hex.push(str2.substring(4,6));
hex.push(str2.substring(6,8));
hex.push(str2.substring(8,10));
hex.push(str2.substring(10,12));
hex.push(str2.substring(12,14));
hex.push(str2.substring(14,16));
alert(hex);
刚刚用字符串中的字节填充了数组,但您现在只需要转换它们:)
完整代码:
var str = "1100000050000000fd25952003800245";
var int1 = parseInt(str.substring(0,7));
var int2 = parseInt(str.substring(8,15));
var str2 = str.substring(16,str.length);
alert(int1);
alert(int2);
var hex = [];
hex.push(str2.substring(0,2));
hex.push(str2.substring(2,4));
hex.push(str2.substring(4,6));
hex.push(str2.substring(6,8));
hex.push(str2.substring(8,10));
hex.push(str2.substring(10,12));
hex.push(str2.substring(12,14));
hex.push(str2.substring(14,16));
alert(hex);
node.js!==jscript。您应该更清楚地说明您想做什么以及在哪里/使用什么。@mscdex updatedhi。但它给出了错误的结果,我尝试了:var hex1=parseInt(“7d000000”)代码>输出:7
其不同之处在于,您需要先进行子串。当代码到达字符“d”时,它假设7是整数。如果你像我在那里发布的那样尝试代码,它就会工作。或者你认为前16个字符也可以带来字符?