Как записать флаг в 7-битное число - PullRequest
0 голосов
/ 27 августа 2018

Вдоль строк Как прочитать 1 бит флага и получить целое число одновременно , задаюсь вопросом, как сделать обратное, записать флаг справа от 7-битного числа в JavaScript .

Я предполагаю, что мы просто используем целые числа в JavaScript, и в коде есть проверки, чтобы убедиться, что число <128. Поэтому, задаваясь вопросом, как сказать: </p>

 var flag = true
 var integer = 123
 var combined = integer + flag

Ответы [ 3 ]

0 голосов
/ 27 августа 2018

On 123 самый правый бит уже установлен. Если вы хотите установить самый правый бит, просто добавьте его. Или вы можете integer | flag ? 1 : 0 до целого числа.

Если вы хотите поставить флаг справа, сдвиньте целое число влево с помощью integer << 1, а затем var combined = integer | flag ? 1 : 0

0 голосов
/ 27 августа 2018

Вы можете использовать побитовый оператор для достижения этого

var flag = true;
var integer = 123;
console.log((integer >>> 0) + flag);
0 голосов
/ 27 августа 2018

Вы можете сохранить объединенное число, сдвинув бит в целое число и добавив флаг.

const combined = (integer << 1) + flag

Этого будет достаточно, и вам вернут номер. Скобки необходимы из-за порядка операций.

...