C++字符串转十六进制

字符串转成十六进制本质上是二进制转成十六进制

二进制数要转换为十六进制,就是以4位一段,分别转换为十六进制

例如字符‘0’的ASCALL码为48
二进制表示为         0011   0000 (4位一段,位数不足高位补0)
转成十六进制就是   3           0

因此字符串转十六进制就是取二进制的高四位和低四位分别转换,代码如下:

string binaryToHex(const string& binaryStr)
{
    string ret;
    static const char *hex = "0123456789ABCDEF";
    for (auto c:binaryStr)
    {
        ret.push_back(hex[(c >> 4) & 0xf]); //取二进制高四位
        ret.push_back(hex[c & 0xf]);        //取二进制低四位
    }
    return ret;
}


int main()
{
    std::cout<

结果:

C++字符串转十六进制_第1张图片

你可能感兴趣的:(C++)