BandaAncha

  • 🔍 en 📰 artículos ⏎
  • 🔍 en 💬 foros ⏎
  • 🔍 en 👇 este 💬 foro ⏎
  • 🔍 en 👇 este 💬 tema ⏎
Regístrate Regístrate Identifícate Identifícate

establecer o asignar bits de una variable (c++)

BocaDePez

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