Как получить n-й бит заданного десятичного числа? [дубликат]C++

Программы на C++. Форум разработчиков
Anonymous
Как получить n-й бит заданного десятичного числа? [дубликат]

Сообщение Anonymous »


Я пытаюсь получить n-й бит заданного числа (начиная с конца двоичного представления числа (от 0)).

Например, у нас есть десятичное число 7 и мы хотим получить 0-й бит. Таким образом, 7 — это 111 в двоичном формате, а 0-й бит — это 1.

Предположим, у нас есть 9, что равно 1001 в двоичном виде, и мы хотим получить второй бит. Это 0.

У меня в голове возникла следующая идея: для первого примера мы возьмем 111 и 001 = 001, что не равно нулю< /em>, поэтому ответ — 1.

Для второго примера мы берем 1001 и 0100 = 0000, что равняется нулю, поэтому ответ равен 0.

По сути, мы берем побитовое и число и число со всеми нулями, кроме 1, в интересующей нас позиции.

Можно ли эффективно реализовать эту идею с помощью кода на C++? Я не знаю, как написать кодом число со всеми нулями, кроме интересующей нас позиции. Спасибо!

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