sostituire un singolo bit in una variabile byte

val B01010001
and B10011111
= B01000001 sbagliato .. ok

val B01010001
and B10011111
= B00010001 giusto .. ok

avevo sbagliato io facendo ad "occhio" ... comunque lo sto già usando e mi ha alleggerito moltissimo il codice. mi sembra che funzioni tutto ok.... credo non ci siano "bachi" ...

senti .. tu indichi il valore con notazione binaria così "ob00000000" .... ma che differenza c'è nello scrivere "0b00000000" oppure "B00000000" .... o meglio : è preferibile usare la tua notazione alla mia o è indifferente?

e sull'altro metodo che mi hai indicato? .. con il bit shift???

sto già usando questo metodo per estrarre delle informazioni da un variabile byte:

dtmf_codice = (PIND & B11110000)>>4; // legge i 4 bit (da 4 a 7) della porta D effetua il bitwise AND con 11110000 e shifta a destra di 4 (estrae un valore tra 0 e 15)

per estrarre alcuni bit da una variabile byte .... probabilmente lo posso usare anche per 'mettere' alcuni bit in una variabile byte in un'unica operazione...