Я пытаюсь получить число из набора байтов с помощью JavaScript в Google Chrome, из ArrayBuffer , чтобы получить информацию о теге MP3.Спецификация ID3v2 гласит , что для получения размера тега необходимо взять 4 байта в определенном месте и получить из них целочисленное значение, кроме:
Размер тега ID3v2 закодированс четырьмя байтами, где старший значащий бит (бит 7) установлен в ноль в каждом байте, что составляет в общей сложности 28 бит.Обнуляемые биты игнорируются, поэтому тег длиной 257 байт представляется в виде $ 00 00 02 01.
Наивный способ сделать это - пройти через каждый байт и получить значения для каждого бита.и получим новые 4-байтовые значения, полученные из 7 битов из исходных 4 байтов, например, скажем, у нас есть эти 4 исходных байта:
0111 1111 0111 1111 0111 1111 0111 1111
Я создаю новый ArrayBuffer и перебираю каждый бит дляпроизводить:
0000 1111 1111 1111 1111 1111 1111 1111
И затем я вычисляю целочисленное значение из этого 32-битного целого, используя Uint32Array
Есть ли более простой способ сделать это?