JavaScript преобразует строку с прямым порядком байтов в число - PullRequest
0 голосов
/ 06 февраля 2019

У меня есть небольшой фрагмент кода, который преобразует число в 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 голосов
/ 06 февраля 2019

Это в основном то же самое, что и преобразование в строку, но в обратном порядке:

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

Или вы можете преобразовать строку в массив, обратить ее обратно, преобразовать обратно в строку и вызвать parseIntс основанием 2:

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