JavaScript将小端序字符串转换为数字

时间:2019-02-06 11:26:47

标签: javascript binary endianness

我有一些代码将数字转换为32位小端字符串。该代码如下。

var s = "";
var myNumber = 515
for(var i = 0; i < 32; i++){
    var mask = 1 << i;
    var bit = myNumber & mask;
    s += bit ? "1" : "0"
}

console.log(s);

这很好用,但是我似乎无法弄清楚我如何工作并将字符串转换回原始号码。有人可以解释如何执行此操作。

1 个答案:

答案 0 :(得分:1)

这基本上与您转换为字符串相同,但相反:

var num = 0;
for(let i = 0; i < s.length; i++) {
  if (s[i] !== '0') {
    num += 1 << i;
  }
}

或者,您可以将字符串转换为数组,将其反转,将其转换回字符串,并以2为底的基数调用parseInt

var num = parseInt(s.split('').reverse().join(''), 2);