簡體   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