繁体   English   中英

将bitset转换为ASCII字符串

[英]convert bitset to ASCII String

你如何将二进制转换回字符串?

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

我如何输出“你好”?

你的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> ,你需要确保提取正确的位来重新组合正确的单个字符。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM