Страницы

Поиск по вопросам

четверг, 28 марта 2019 г.

Побитовые операции - как получить значение определенного бита?

Здравствуйте. Как получить значение определенного бита в байте? Допустим мы имеем байт с битами вида: 00110101
Как можно получить значение 4 или 5 бита? Пример можно показать на любом языке, предпочтительнее C или Delphi.


Ответ

Если вас интересует буквальное значение бита (т.е. 0 или 1), то в языке С значение i-того бита числа n можно получить как
(n >> i) & 1u
Если вас интересует взвешенное значение бита (т.е. 0 или 8 для бита номер 3), то в языке С значение i-того бита числа n можно получить как
n & (1u << i)
(Подразумевается нумерация с нуля от младших битов к старшим.)

Комментариев нет:

Отправить комментарий