在javascript中将此十六进制字符串转换为整数数组

时间:2016-11-16 02:26:23

标签: javascript arrays node.js hex string-conversion

我正在使用node.js v6。

我有这个十六进制字符串;

let hex_string = "0102030402";

我想将hex_string转换为整数array_hex_integer的数组,如下所示;

let array_hex_integer;
array_hex_integer = [1, 2, 3, 4, 2];

array_hex_integer中的第一个元素对应hex_string中的'01'(第1和第2个字符),第2个元素对应hex_string中的'02'(第3个和第4个字符),等等。

4 个答案:

答案 0 :(得分:4)

这是一种可能的方法来做你需要的。

var hex_string = "0102030402";
var tokens = hex_string.match(/\d\d/gi);
var result = tokens.map(t => parseInt(t));

答案 1 :(得分:2)

您可以使用拆分javascript功能。

var hex_string = "0102030402";
 array_hex_integer = hex_string.split('').map(function(item) {
    return parseInt(item, 10);
});

答案 2 :(得分:1)

在javascript中,我使用此函数将hexstring转换为unsigned int数组

function hexToUnsignedInt(inputStr) {
  var hex  = inputStr.toString();
  var Uint8Array = new Array();
  for (var n = 0; n < hex.length; n += 2) {
    Uint8Array.push(parseInt(hex.substr(n, 2), 16));
  }
  return Uint8Array;
}

希望这对某人有帮助

答案 3 :(得分:0)

首先,将hex_string拆分为字符串数组。查看我的函数split_str()。然后,将此数组的字符串转换为您想要的整数数组。

function split_str(str, n)
{
    var arr = new Array;
    for (var i = 0; i < str.length; i += n)
    {
        arr.push(str.substr(i, n));
    }
    return arr;
}

function convert_str_into_int_arr(array_str)
{
    let int_arr = [];
    for (let i =0; i < array_str.length; i++)
    {
        int_arr [i]=parseFloat(array_str[i]);
    }

    return int_arr;
}

let answer_str = split_str(hex_string,10);
let answer_int = convert_str_into_int_arr(answer_str);