4

Если у меня есть номер «00001000» и маска «00101000», как я могу проверить с помощью двоичной операции, если установлены оба бита в номере? number & mask верните true, если хотя бы одно битное совпадение, но мне нужно проверить, все ли они совпадают. Как это сделать?Бит-маскирование (javascript): как проверить флаги ALL

ответ

7

Просто сравните с маской:

if (number & mask === mask) { 
    // all bits are set! 
} 

Единственным способом результата & операции будет точно таким же, как значение маски, когда число имеет все биты установлены. (Номер теста может содержать больше бит, если вы хотите проверить, установлены ли его одинаковые биты и не установлены, то это простой тест равенства.)

Смежные вопросы