Конвертировать массив в 8 байтов в JavaScript - PullRequest
1 голос
/ 08 декабря 2011

У меня есть длинная строка без знака в javascript, которую я пытаюсь преобразовать в байтовый массив (8 байтов, очевидно, для длинной строки). Вот что у меня есть:

var deviceId = parseFloat("353268001238563");
var bytes = new Array(7);
for(var k=0;k<8;k++) {
   bytes[k] = value & (255);
   value = value >> 8
}
return bytes;

К сожалению, байтысгенерированы неверно.Есть идеи, что я делаю не так?

1 Ответ

2 голосов
/ 08 декабря 2011

Оператор >>, похоже, не работает со значениями, которые не могут быть представлены в обычном 32-разрядном целом числе со знаком, так как он будет переноситься.

Хакерским решением может быть использование регулярного делениявместо битового сдвига:

value = value / 256;
...