Страницы

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

четверг, 6 июня 2019 г.

Как на Си в целой переменной (регистр) изменить какой либо бит?

Нужно на Си изменить в целой переменной изменить бит, так чтобы не затронуть остальные?


Ответ

Есть несколько вариантов. Но по моему так будет лучше всего: // Присваиваем BIT2 - (0?1 << 2), вместо 2 номер любого бита с которым хотите работать! #define BIT2 (0?1 << 2)
static int per; //Ваша переменная
void set_bit2(void) //Функция которая будет устанавливать Ваш бит { per |= BIT2; //Установка соответствующего бита }
void clear_bit2(void) //Функция которая будет затирать Ваш бит { per &= ~BIT2; //Стираем соответствующий бит } Как то так, но если хотите можете вспомнить битовые поля ))

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

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