2012-04-17 126 views
12

我想使用字符串类将字符串转换为Binary。什么是按角色来做这个角色的快速方法。循环?还是有一些功能可以帮我转换? 1和0的二进制。将字符串转换为二进制的最快方法?

一个字符为:

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

:http://stackoverflow.com/questions/505021/get-bytes-from-stdstring-in-c – Serdalis 2012-04-17 02:11:12

+0

@Serdalis我真的不知道那里发生了什么。 – Derp 2012-04-17 02:14:50

+0

您希望将“Hello,world”的输出看作什么?代表字符串字符的二进制ASCII码的11 * 8'0'或'1'字符,还是别的? – dasblinkenlight 2012-04-17 02:15:17

回答

29

使用std::bitset将工作:

#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

或只是'bitset <8>(myString [i])' – 2012-04-17 02:37:46

+1

所以bitset <8>会给你base-256,if你想说base-255或base-257只需加上-1和+1? – pyCthon 2013-01-02 19:34:39

+0

如果我们想对输出进行求和,如果在MSB端的总和结束时有一个溢出位(0或1),那么应该再次将它添加到总和的最终答案中。我们怎么做到这一点? – user899714 2013-11-05 21:01:20

相关问题