Цитата(alux @ Dec 18 2007, 23:26)

А если число бит, которые необходимо обнулить, величина переменная?
Если контроллер имеет аппаратную поддержку сдвигов, то можно так: value &= ~ ( (1 << n) - 1); (n - число маскируемых бит). Если не имеет - то массив констант, в котором хранятся маски.
Код
uint8_t const Mask[] = { 0xFE, 0xFC, 0xF8, 0xF0, 0xE0, 0xC0, 0x80, 0x00 };
value &= Mask[n];