[英]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.