2016-01-21 21 views
-5

当我有这样的二进制代码“01010100011001010111001101110100" ,我怎么能转换此回‘测试’C++ Builder中:?转换二进制代码AnsiString类型

感谢

+3

你有什么尝试过吗?这是如何(或没有)的工作?您可以向我们展示您的代码(最好以[最小,完整和可验证示例](http://stackoverflow.com/help/mcve))的形式,并告诉我们它有什么问题。如果你还没有这样做,请[阅读关于如何提出好问题](http://stackoverflow.com/help/how-to-ask)。 –

+1

你可以编写一个程序来完成它,或者使用铅笔和纸张以及一张ASCII表格......为什么不把你最好的猜测和尝试一些东西,然后问问题,如果你有任何问题你不能解决?你可能会惊讶自己。 –

回答

0
#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; 
} 
1

有很多方法这取决于语言,一般来说,你需要以8位(字节)为单位分解二进制字符串,然后计算每个字节的十进制值,下面的链接会介绍如何做到这一点。有十进制值,你有每个字母,从这里开始,它取决于语言,在C中你可以对每个字符做一个字符数组,然后制作一个c字符串

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

你也可以做一个查找表。

相关问题