如何将二进制文件转换回字符串?
std::string test1("Hello");
std::bitset<8> test2;
test2 = std::bitset<8>(test1.c_str()[0]);
std::cout << test2 << std::endl;
std::string test3=test2.to_string<char,std::char_traits<char>,std::allocator<char> >();
std::cout << test3 << std::endl;
这将输出: 01001000 01001000
如何输出“Hello”?
答案 0 :(得分:3)
std::bitset<8>
显然无法占领世界"Hello"
。毕竟,你只代表8位。您可以做的是将每个char
转换为std::bitset<8>
(假设char
是8位,当然,通常情况但不保证)和std::bitset<8>
使用to_ulong()
将其值作为整数返回。将如此获得的此值转换为char
应该产生原始字符:
std::bitset<8> c(test1[0]);
std::cout << "c=" << c << " char(c.to_ulong())=" << char(c.to_ulong()) << "\n";
要获得"Hello"
,您需要更大的std::bitset<N>
,并且您需要确保提取正确的位以重新组合正确的个性。