Banda Ancha EU

Comunidad de usuarios
de fibra, móvil y ADSL

hosting en interdominios
366 lecturas y 1 respuestas
  • Boca de Pez Boca de Pez
    6

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

    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

    Este tema lleva más de 6 meses inactivo. Es recomendable que abras un nuevo tema para retomar la conversación.