2012-04-17 4 views
12

문자열 - 클래스를 사용하여 문자열을 이진으로 변환하려고합니다. 문자로이 캐릭터를 빠르게 수행하는 방법은 무엇입니까? 고리? 아니면 저를 위해 변환 할 수있는 기능이 있습니까? 1과 0의 바이너리.문자열을 바이너리로 변환하는 가장 빠른 방법은 무엇입니까?

문자열의 존재는 : std::bitset를 사용

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

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

+0

@Serdalis 나는 거기에서 무슨 일이 일어나는지 전혀 모른다. – Derp

+0

"Hello, world"의 출력으로 무엇을보고 싶습니까? 11 * 8 문자열 문자의 2 진 ASCII 코드를 나타내는'0' 또는'1' 문자입니까? – dasblinkenlight

답변

29

작동합니다 :

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

출력 : 당신이 원하는

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

또는 비트 세트 <8> (myString [i]) –

+1

비트 세트 <8>은 기본 256을 제공합니다. if 당신은 base-255 또는 base-257이 단지 -1과 +1을 더한다고 말하고 싶습니까? – pyCthon

+0

우리는 MSB쪽에 합계의 끝 부분에 오버플로 비트 (0 또는 1)가있는 경우 합계의 최종 대답에 다시 추가되어야하는 출력을 합산하려는 경우. 어떻게 할 수 있니? – user899714

관련 문제