2012-04-17 20 views
12

Voglio convertire una stringa, utilizzando la classe stringa - in binario. Qual è il modo veloce per fare questo personaggio per carattere. Ciclo continuo? O c'è qualche funzione là fuori che convertirà per me? 1 e 0 di binario.Il modo più veloce per convertire stringhe in binario?

Un essere stringa:

#include <string> 
using namespace std; 
int main(){ 
    myString = "Hello World"; 
} 
+1

si desidera che questo: http://stackoverflow.com/questions/505021/get-bytes-from-stdstring-in-c – Serdalis

+0

@Serdalis Non ho davvero idea di cosa sta succedendo lì. – Derp

+0

Cosa ti piacerebbe vedere come output per "Hello, world"? 11 * 8 '0' o' 1' caratteri che rappresentano codici ASCII binari dei caratteri della stringa o qualcos'altro? – dasblinkenlight

risposta

29

Utilizzando std::bitset avrebbe funzionato:

#include <string> 
#include <bitset> 
#include <iostream> 
using namespace std; 
int main(){ 
    string myString = "Hello World"; 
    for (std::size_t i = 0; i < myString.size(); ++i) 
    { 
     cout << bitset<8>(myString.c_str()[i]) << endl; 
    } 
} 

uscita:

01001000 
01100101 
01101100 
01101100 
01101111 
00100000 
01010111 
01101111 
01110010 
01101100 
01100100 
+13

Oppure solo 'bitset (myString [i])' –

+1

così bitset <8> ti darebbe base-256, se vuoi dire base-255 o base-257 basta aggiungere -1 e +1? – pyCthon

+0

se vogliamo sommare le uscite in modo tale che se c'è un bit di overflow (0 o 1) alla fine della somma sul lato MSB, allora dovrebbe essere aggiunto nuovamente alla risposta finale della somma. Come possiamo farlo? – user899714

Problemi correlati