Как получить n-й бит заданного десятичного числа? [дубликат] ⇐ C++
-
Anonymous
Как получить n-й бит заданного десятичного числа? [дубликат]
Я пытаюсь получить n-й бит заданного числа (начиная с конца двоичного представления числа (от 0)).
Например, у нас есть десятичное число 7 и мы хотим получить 0-й бит. Таким образом, 7 — это 111 в двоичном формате, а 0-й бит — это 1.
Предположим, у нас есть 9, что равно 1001 в двоичном виде, и мы хотим получить второй бит. Это 0.
У меня в голове возникла следующая идея: для первого примера мы возьмем 111 и 001 = 001, что не равно нулю< /em>, поэтому ответ — 1.
Для второго примера мы берем 1001 и 0100 = 0000, что равняется нулю, поэтому ответ равен 0.
По сути, мы берем побитовое и число и число со всеми нулями, кроме 1, в интересующей нас позиции.
Можно ли эффективно реализовать эту идею с помощью кода на C++? Я не знаю, как написать кодом число со всеми нулями, кроме интересующей нас позиции. Спасибо!
Я пытаюсь получить n-й бит заданного числа (начиная с конца двоичного представления числа (от 0)).
Например, у нас есть десятичное число 7 и мы хотим получить 0-й бит. Таким образом, 7 — это 111 в двоичном формате, а 0-й бит — это 1.
Предположим, у нас есть 9, что равно 1001 в двоичном виде, и мы хотим получить второй бит. Это 0.
У меня в голове возникла следующая идея: для первого примера мы возьмем 111 и 001 = 001, что не равно нулю< /em>, поэтому ответ — 1.
Для второго примера мы берем 1001 и 0100 = 0000, что равняется нулю, поэтому ответ равен 0.
По сути, мы берем побитовое и число и число со всеми нулями, кроме 1, в интересующей нас позиции.
Можно ли эффективно реализовать эту идею с помощью кода на C++? Я не знаю, как написать кодом число со всеми нулями, кроме интересующей нас позиции. Спасибо!
Мобильная версия