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