【问题标题】:C++ Builder: Convert binary code to AnsiString [closed]C++ Builder:将二进制代码转换为 AnsiString [关闭]
【发布时间】:2016-04-28 04:22:33
【问题描述】:

当我有像“01010100011001010111001101110100”这样的二进制代码时,如何将其转换回“测试”?

谢谢。

【问题讨论】:

  • 你自己试过什么?那是如何(或没有)起作用的?您能否向我们展示您的代码(最好以Minimal, Complete, and Verifiable Example 的形式)并告诉我们它有什么问题。如果您还没有这样做,请read about how to ask good questions
  • 你可以编写一个程序来完成它,或者使用铅笔和纸和一个 ASCII 表......为什么不尝试一下你最好的猜测,然后在你有任何问题时提出问题你解决不了?你可能会感到惊讶。

标签: c++ binary ansistring


【解决方案1】:

有很多方法可以做到这一点。这取决于语言。通常,您会将二进制字符串分解为 8 位(字节)的块。然后你会计算每个字节的十进制值。下面的链接介绍了如何做到这一点。一旦你有了十进制值,你就有了每个字母。从这里开始,这取决于语言。在 C 中,您可以为每个字符创建一个 char 数组并创建一个 c 字符串。

http://www.wikihow.com/Convert-from-Binary-to-Decimal

你也可以做一个查表。

【讨论】:

    【解决方案2】:
    #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;
    }
    

    【讨论】:

      猜你喜欢
      • 2018-10-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-16
      • 2017-02-04
      • 2013-07-08
      相关资源
      最近更新 更多