es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo verificar el valor de un bit en C++

Me gustaría comprobar el valor del quinto y cuarto bit empezando desde la izquierda en cadenas como esta:

value: "00001101100000000000000001000110"

value: "00000101100000000000000001000110"

value: "00010101100000000000000001000110"

El valor se genera como una cadena de esta manera:

msg.value = bitset<32>(packet.status()).to_string();

para ser enviado como un nodo ROS y recibido como una cadena.
¿Puedo seguir usando bitset para comprobar el valor de los bits aunque sea una cadena?
¿Cuál es la mejor solución para comprobarlos?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Sí, todavía puedes usar bitset para verificar el valor de los bits aunque sea una cadena. Para hacer esto, puedes usar el constructor de bitset que toma una cadena como argumento. Por ejemplo, para verificar el valor del quinto y cuarto bit empezando desde la izquierda en la cadena "00001101100000000000000001000110", puedes usar el siguiente código:

    #include <bitset>
    
    std::bitset<32> bits("00001101100000000000000001000110");
    
    bool fifth_bit = bits[4]; // el quinto bit es 0
    bool fourth_bit = bits[3]; // el cuarto bit es 1
    

    Esta es la mejor solución para verificar el valor de los bits en una cadena.

Comments are closed.