2012-04-17 18 views
12

Quiero convertir una cadena, usando la clase de cadena - a Binario. ¿Cuál es la forma más rápida de hacer este personaje por personaje? ¿Lazo? ¿O hay alguna función que se convierta para mí? 1's y 0's binarios.¿La forma más rápida de convertir cadenas a binario?

Un ser de cadena:

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

desea que esta: http://stackoverflow.com/questions/505021/get-bytes-from-stdstring-in-c – Serdalis

+0

@Serdalis Realmente no tengo idea de lo que está pasando allí. – Derp

+0

¿Qué le gustaría ver como resultado de "Hola, mundo"? 11 * 8 '0' o' 1' caracteres que representan códigos binarios ASCII de los caracteres de cadena, o algo más? – dasblinkenlight

Respuesta

29

Usando std::bitset funcionaría:

#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; 
    } 
} 

Salida:

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

O simplemente 'conjunto de bits <8> (myString [i])' –

+1

bitset <8> te daría base-256, si ¿quieres decir base-255 o base-257 simplemente agregue -1 y +1? – pyCthon

+0

si queremos sumar las salidas de manera que si hay un bit de desbordamiento (0 o 1) al final de la suma en el lado MSB, entonces eso debería agregarse a la respuesta final de la suma nuevamente. ¿cómo podemos hacer eso? – user899714

Cuestiones relacionadas