Как объединить биты в большие целые числа в JavaScript - PullRequest
0 голосов
/ 11 марта 2019

Хотите знать, что является идеальным способом преобразования группы меньших бит в большие биты.Например, эти конкретные случаи:

  • 3 8-разрядных чисел на 1 24-разрядное число.
  • 2 16-разрядных чисел на 1 32-разрядное число.

Интересно, что такое общая техника, чтобы я мог применить ее к любому числу.Если он работает только для кратных 8, то это нормально, но в идеале он мог бы справиться и с этими случаями.

  • 3 7-разрядных чисел до 1 21-разрядного числа.
  • 9 3-битные числа в 1 27-битное число.

Я думал, что вы просто добавляете их, но звучит так, как будто есть способ их сдвига, но я не уверен, как именноработает в общем.

1 Ответ

1 голос
/ 11 марта 2019

Я предполагаю, что под "преобразованием" вы подразумеваете "объединение" битов.

Вот как бы вы сделали это с помощью shift:

var int1 = 23; // "8 bit" number, stored in integer variable
var int2 = 67; // another one
var int3 = 189; // a third
var concatInt = ( int1 << 16 ) + ( int2 << 8 ) + int3;

Здесь значением «concatInt» является побитовая конкатенация трех чисел [int1] [int2] [int3]

Конечно, вы можете делать это с любыми числами и любыми битами, если вы вписываетесь в 32-битное целое число.

Вот еще кое-что об этом: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Bitwise_Operators

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...