Как считать 1 флаговый бит и получить целое число одновременно - PullRequest
0 голосов
/ 27 августа 2018

Скажем, у меня есть 8-битное число с флагом на каждой стороне:

<flag>0101011 (decimal 43)
0101011<flag> (decimal 43)

Не уверен, что лучше для того, что будет дальше.

Тогда скажите, что я хочу проверить флаг, а затем использовать номер. Интересно, можно ли это сделать за одну операцию? Или, если нет, наименьшее количество операций, в которых это можно сделать.

1 Ответ

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

Вы можете сделать что-то подобное, используя флаг в конце:

var num = 0b01010110;
var flag = num & 1;
var int = num >> 1;
console.log(flag);
console.log(int);

Но бинарные операции и битовые флаги в целом являются своего рода злоупотреблением JavaScript, поскольку в действительности у него нет целочисленных типов. Однако, если вам нужно сделать это, похоже, что флаг в конце будет более надежным, поскольку вы не можете явно гарантировать, что число будет 8 бит по типу. Таким образом, флаг всегда будет в одном и том же положении, а остальное всегда будет вашим номером.

...