Как я могу проверить, установлены ли все биты или нет?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Как я могу проверить, установлены ли все биты или нет?

Сообщение Anonymous »

Как с помощью побитового оператора проверить, все ли n младших бит целого числа установлены или не установлены.
Например, если n = 3 Меня волнуют только 3 младших бита, и тест должен возвращать true для 0 и 7 и false для всех остальных значений от 0 до 7.
Конечно, я мог бы сделать это, если x = 0 или x = 7, но я предпочел бы использовать побитовые операторы.
Бонусные баллы, если метод можно адаптировать для учета всех битов, определенных маской.
Пояснение :
Если бы я хотел проверить, установлен ли первый или второй бит, я мог бы сделать это, если ((x & 1 != 0) && (x & 2 != 0)). Но я мог бы сделать «более эффективный», если ((x & 3) != 0).
Я пытаюсь найти такой «взлом», чтобы ответить вопрос «Все ли биты x, соответствующие этой маске, установлены или не установлены?»
Простой способ: if ((x & маска) == 0 || (x & маска ) == маска). Я хотел бы найти способ сделать это в одном тесте без || оператор.

Подробнее здесь: https://stackoverflow.com/questions/283 ... ts-are-not
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»