简体   繁体   English

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

[英]Convert this hex string into array of integer in javascript

I am using node.js v6.我正在使用 node.js v6。

I have this hex string;我有这个十六进制字符串;

let hex_string = "0102030402";

I would like to convert hex_string into an array of integer array_hex_integer that looks like this;我想将hex_string转换为一个看起来像这样的整数array_hex_integer数组;

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

The first element in array_hex_integer corresponds to '01' (1st and 2nd chars) in hex_string , 2nd element corresponds to '02' (3rd and 4th chars) in hex_string and so on. array_hex_integer 中的第一个元素对应于array_hex_integer中的“01”(第一个和第二个字符),第二个元素对应于hex_string中的“02”(第三个和第四个字符), hex_string类推。

Here is one possible way to do what you need.这是一种可能的方法来做你需要的。

var hex_string = "0102030402";
var tokens = hex_string.match(/[0-9a-z]{2}/gi);  // splits the string into segments of two including a remainder => {1,2}
var result = tokens.map(t => parseInt(t, 16));

See: https://stackblitz.com/edit/js-hozzsn?file=index.js见: https ://stackblitz.com/edit/js-hozzsn?file=index.js

You can use split javascript function. 您可以使用拆分javascript函数。

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

In javascript I use this function to convert hexstring to unsigned int array在 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;
}

Hope this helps someone希望这可以帮助某人

First, split hex_string into an array of string.首先,将hex_string拆分为一个字符串数组。 See my function split_str() .请参阅我的函数split_str() Then, convert this array of string into the array of integer that you want.然后,将此字符串数组转换为您想要的整数数组。

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);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM