问题描述
根据可悲的文档实施某些操作,而没有任何信息.
Implementing something based on a pathetic documentation without no info nothing.
示例就是这样
(7F02AAF7)H => (F7AA027F)H = -139853185
说,即使我将 7F02AAF7
转换为 F7AA027F
,那么通过'parseInt('F7AA027F',16)'
与我期望的不同.
Let's say even if I convert 7F02AAF7
to F7AA027F
, then still the output via'parseInt('F7AA027F', 16)'
is different from what I am expecting.
我做了一些Google搜索,发现了该网站 http://www.scadacore.com/field-tools/programming-calculators/online-hex-converter/
I did some google search and found this website http://www.scadacore.com/field-tools/programming-calculators/online-hex-converter/
在这里,当您输入 7F02AAF7
时,它将在 INT32-Little Endian(DCBA)
系统下被处理为所需编号.我尝试了这个搜索字词,但没有运气.您能告诉我我到底应该在这里做什么,是否有任何node.js库可以帮助我解决这个问题.
Here when you input 7F02AAF7
then it is processed to wanted number under INT32 - Little Endian (DCBA)
system. I tried this search term but no luck. Can you please tell me what exactly am I supposed to do here and is there any node.js library which can help me with this.
推荐答案
您可以采用 的出色答案href ="https://stackoverflow.com/users/157247/tj-crowder"> TJCrowder 并使用 给定字节的DataView#setUint8
与 DataView#getInt32
和littleEndian的指示器.
You could adapt the excellent answer of T.J. Crowder and use DataView#setUint8
for the given bytes with DataView#getInt32
and an indicator for littleEndian.
var data = '7F02AAF7'.match(/../g);
// Create a buffer
var buf = new ArrayBuffer(4);
// Create a data view of it
var view = new DataView(buf);
// set bytes
data.forEach(function (b, i) {
view.setUint8(i, parseInt(b, 16));
});
// get an int32 with little endian
var num = view.getInt32(0, 1);
console.log(num);
这篇关于十六进制字符串到INT32-Little Endian(DCBA格式)Javascript的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!