int类型的数字转换为十六进制数

string toHex(int num)
{
    if(num == 0)
        return "0";

    string res = "";
    string hex[16] = {"0", "1", "2", "3", "4", "5", "6", "7", 
                      "8", "9", "a", "b", "c", "d", "e", "f"};
    
    unsigned int num2 = num;//无论正负,全部转换成无符号整型
    while(num2)
    {
        res = hex[num2 % 16] + res;//取余即是最低位
        num2 /= 16;
    }
    return res;
}

//还可以这样位运算
res = hex[num2 - ((num2 >> 4) << 4)] + res;
//num2先右移4位,再左移4位,即相当于将低4位置0,再用原来的num2一减,就是低四位的值

 


版权声明:本文为mikasoi原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。