Как я могу изменить значение одного бита в переменной?
Ответ:
[Вернуться в категорию "Вопросы и ответы по программированию на C для микроконтроллеров PIC."] Вы можете использовать следующий код:
unsigned char x = 0b0001; bit_set ( x, 3 ); // сейчас x = 0b1001; bit_clr ( x, 0 ); // сейчас x = 0b1000; // определение функций #define bit_set ( var, bitno ) ((var) |= 1 << (bitno)) #define bit_clr ( var, bitno ) ((var) &= ~ (1 << (bitno)))
Можно использовать следующий пример для изменения нескольких битов по маске
unsigned char x = 0b1010; bits_on ( x, 0b0001 ); // сейчас x = 0b1011 bits_off ( x, 0b0011 ); // сейчас x = 0b1000 // определение функций #define bits_on (var, mask) var |= mask #define bits_off (var, mask) var &= ~ 0 ^ mask [Вопросы и ответы по программированию на C для микроконтроллеров PIC.]
|