当我有像“01010100011001010111001101110100”这样的二进制代码时,如何将其转换回“测试”?
谢谢。
有很多方法可以得到这个。这取决于语言。通常,您会将二进制字符串分解为 8 位(字节)的块。然后你会计算每个字节的十进制值。下面的链接介绍了如何做到这一点。一旦你有了十进制值,你就有了每个字母。从这里开始,这取决于语言。在 C 中,您可以为每个字符创建一个 char 数组并创建一个 c 字符串。
http://www.wikihow.com/Convert-from-Binary-to-Decimal
你也可以做一个查表。
#include <iostream>
#include <string>
#include <climits>
int main( int, char ** )
{
std::string str( "01010100011001010111001101110100" );
std::string result;
for( size_t i = 0; i < ( str.size() / CHAR_BIT ); ++i )
result.push_back( static_cast< char >( stoi( str.substr( 8 * i, CHAR_BIT ), nullptr, 2 ) ) );
std::cout << "result = " << result << std::endl;
return 0;
}