【问题标题】:JavaScript convert little endian string to numberJavaScript 将小端字符串转换为数字
【发布时间】:2019-02-06 11:26:47
【问题描述】:

我有一小段代码可以将数字转换为 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);

这工作正常,但我似乎无法弄清楚我如何工作并将字符串转换回它的原始数字。有人可以解释如何做到这一点。

【问题讨论】:

    标签: javascript binary endianness


    【解决方案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);
    

    【讨论】:

    • 谢谢杰森。两个很好的解决方案,尤其是第一个。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-23
    • 1970-01-01
    • 1970-01-01
    • 2021-10-23
    • 1970-01-01
    相关资源
    最近更新 更多