现在的位置: 首页 > 综合 > 正文

C++中文转16进制,再转化为2进制数组

2018年07月17日 ⁄ 综合 ⁄ 共 613字 ⁄ 字号 评论关闭
#include <iostream>
#include <sstream>
#include <cstdlib>

using namespace std;

void string_to_hex(ostringstream& oss, string s)
{
    oss.flags(ios::hex | ios::showbase | ios::uppercase);
    for(size_t i=0; i<s.length(); ++i)
        oss << static_cast<unsigned long>(s[i]) << ' ';
}

string hex_to_string(istringstream& iss)
{
    string re;
    string tmp;
    unsigned long n;

    while(iss>>tmp) {
        n = strtoul(tmp.c_str(), 0, 0);
        re.push_back(static_cast<char>(n));
    }
    return re;
}

int main ( )
{
    cout << "你好,世界!\n";

    ostringstream oss(ostringstream::out);
    string_to_hex(oss, "你好,世界!");
    cout << oss.str() << endl;

    istringstream iss(oss.str());
    cout << hex_to_string(iss);
    return 0;
}

转载:http://bbs.csdn.net/topics/310241436

抱歉!评论已关闭.