hi sto lavorando su qualcosa che richiede l'accesso a specifici/range di bit. Ho deciso di usare bitset perché è facile accedere a bit specifici ma posso estrarre un'intera gamma di bit?in bitset, posso usare "to_ulong" per uno specifico intervallo di bit?
11
A
risposta
9
Metodo A:
return (the_bitset >> start_bit).to_ulong();
Metodo B (più veloce di metodo A per 100 volte sulla mia macchina):
unsigned long mask = 1;
unsigned long result = 0;
for (size_t i = start_bit; i < end_bit; ++ i) {
if (the_bitset.test(i))
result |= mask;
mask <<= 1;
}
return result;
+0
'operator []' dovrebbe essere più veloce ancora poiché nessun controllo controlla come in 'test()'. –
Problemi correlati
- 1. Bit field vs Bitset
- 2. Come convertire un sottoinsieme di intervalli di bit in un set di bit C++ in un numero?
- 3. XOR bitset a 128 bit
- 4. Quale implementazione di bitset dovrei usare per le massime prestazioni?
- 5. manipolazione bit: azzeramento intervallo di bit
- 6. Modo efficiente di iterare su bit true in std :: bitset?
- 7. utilizzando contenitore bitset in C++
- 8. Come posso usare SUM per le colonne di bit?
- 9. Come posso mescolare un intervallo specifico di un ArrayList?
- 10. Vincolo di stat_smooth a un intervallo specifico
- 11. C'è un modo banale per ottenere complemento a 2 di uno std :: bitset <N>
- 12. Come implementare un vettore bit (bitset) (in Java)?
- 13. Come posso convertire bitset in cortocircuito in C++?
- 14. BitSet Java che consente una facile concatenazione di BitSet
- 15. Imposta bit specifico nel byte
- 16. Come si disattiva un bit specifico in una maschera bit?
- 17. Uscite log Git in un intervallo di revisione specifico
- 18. Come implementare BitSet con Go?
- 19. Qual è la pratica consigliata per la manipolazione di bitset?
- 20. Pianificazione del processo java per un intervallo di tempo specifico con un determinato intervallo di tempo
- 21. Perché lo std :: swap di bit in un'istanza di std :: bitset non funziona?
- 22. Buona libreria per bitset o bitarray
- 23. definire una funzione in uno spazio specifico
- 24. Esempio di bitSet Java
- 25. Come eseguire un metodo dopo un intervallo di tempo specifico?
- 26. Posso usare Sass con uno script batch in Windows
- 27. Come posso ottenere un intervallo specifico di byte nei dati varbinary?
- 28. Carica un CSS esterno per uno specifico DIV
- 29. Inno-setup 32 bit e 64 bit in uno
- 30. Come capovolgere un bit specifico in un byte in C?
Si potrebbe voler accettare la risposta data. –