[英]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.