Necesito extactar bytes del conjunto de bits que pueden (no) contener un múltiplo de bits CHAR_BIT. Ahora, ¿cuántos de los bits del conjunto de bits necesito poner en una matriz? Por ejemplo,¿Cómo convierto bitset a una matriz de bytes/uint8?
los bits puestos está declarada como std::bitset < 40> id;
Hay una variable separada nBits
cuántos de los bits en id
están disponibles. Ahora quiero extraer esos bits en múltiplos de CHAR_BIT. También necesito ocuparme de los casos donde nBits % CHAR_BIT != 0
. Estoy bien para poner esto en una matriz de uint8
Harsh ... si tuviera menos de sizeof (unsigned long) bits, esto sería sencillo con 'bitset :: to_ulong'. Tal como están las cosas, no creo que haya una solución simple. 'std :: bitset' no tiene algo como' data() 'como lo hace' std :: vector' (aunque la versión de gcc tiene una función '_M_getdata' indocumentada y experimental que es solo eso ...)'. Como no hay otra cosa, solo puede acceder a los bits individuales por separado. O serialice en una cadena o vaya a través de una secuencia, pero ninguno de estos es particularmente eficiente. – Damon