JavaScript 将小端字符串转换为数字
JavaScript convert little endian string to number
我有一小段代码可以将数字转换为 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);
这工作正常,但我似乎无法弄清楚我是如何工作并将字符串转换回它的原始数字的。有人可以解释如何做到这一点。
这和你转字符串基本一样,只是反过来了:
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);
我有一小段代码可以将数字转换为 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);
这工作正常,但我似乎无法弄清楚我是如何工作并将字符串转换回它的原始数字的。有人可以解释如何做到这一点。
这和你转字符串基本一样,只是反过来了:
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);