Hola
estoy buscando una forma de, dada una variable, acceder a un determinado bit y cambiar su valor. He encontrado estructuras de datos como las mascaras de bits y los campos de bits, pero creo que no puedo aplicarlo a lo que quiero. He creado dos metodos para hacerlo, el que obtiene un determinado bit de una variable funciona bien... el que establece el valor no funciona.
bool getValorBinario(unsigned char& caracter, int posicion) {
if(cadena & (1 << posicion))
return 1;
else
return 0;
}
void setValorBinario(unsigned char& caracter, int posicion, bool valor){
if(valor)
cadena | (unsigned char)(pow(2,posicion));
else
cadena & (unsigned char)(pow(2,posicion));
}
¿me podéis decir que estoy haciendo mal y si hay alguna forma más "agradable" de hacer esto?
gracias

