2013-06-16 16 views
5

私は(256ビット)バイナリ文字列からビットセットを作成するにはどうすればよいですか?

0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001100100101101100110000110100110110111000010100110110110110111000011001000010110010010001100010010001010010010100001011001100010100001100100011011101

のように見えるファイル内のバイナリ文字列を持っています。この文字列を実際にbitset<256>の値として設定できますか?

現在、私は

for (int t = sizeof(c) - 1; t > 0; t--) { 
    if (c[t] == '1') { 
     b |= 1; 
    } 
    b <<= 1; 
} 
b >>= 1; 

をしています。しかし、私の結果は正しくありません。

+0

は、あなたは必ず 'トン=はsizeof(C)-1'正しい? 'sizeof(c) 'とは何ですか? – Patashu

+1

はい、そのためのコンストラクタがあります。 – chris

答えて

5

は、私は本当にすぐ>ビットセット< 256の値としてこの文字列を設定することはできますか?

はい、あなただけconstructorを使用することができ、以下の例は、文書から右に取られ、同様256の作品:

std::string bit_string = "110010"; 
std::bitset<8> b3(bit_string);  // [0,0,1,1,0,0,1,0] 

std::cout << b3.to_string() << std::endl ; 
+0

ありがとう、完璧に働いた。私はこの機能を忘れていました。 –

1

byインデックスに直接アクセスしてみませんか?以下のような...

b[t] = c[t] - '0'; 
関連する問題