将一个小尾数十六进制字符串解析为十进制

Jan*_*Jan 2 javascript hex endianness

我有一个小的字符串十六进制字符串,需要在JavaScript中转换为十进制.

示例十六进制字符串:"12AB34CD"要获得正确的值,需要将字节交换为:"CD34AB12"

目前我只使用substring交换字节,然后使用parseInt().

var string = "12AB34CD";
var parsedInt = parseInt("0x" + string.substring(6,8) + string.substring(4,6)+ string.substring(2,4) + string.substring(0,2);
Run Code Online (Sandbox Code Playgroud)

我有很多未知长度的数据要解析,所以我想知道是否有更好的方法.

abh*_*jia 10

您可以使用这样的东西来交换字节:

var endian = "12AB34CD";

var r = parseInt('0x'+endian.match(/../g).reverse().join(''));

console.log(r); // Decimal
console.log(r.toString(16).toUpperCase());  // Hex
Run Code Online (Sandbox Code Playgroud)