Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.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(wscript)中将小端二进制文件转换为int_Javascript_Jscript - Fatal编程技术网

在客户端的javascript(wscript)中将小端二进制文件转换为int

在客户端的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

我有一个二进制数据数组,在服务器上使用node js进行转换:

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个字符也可以带来字符?