我有一些代码将数字转换为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);
这很好用,但是我似乎无法弄清楚我如何工作并将字符串转换回原始号码。有人可以解释如何执行此操作。
答案 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);