C++如何将int型的16进制转化为10进制 10C

定义了一个uint16_t类型的数据,如何转化为10进制,希望代码不要太长,谢谢指导

5个回答

 或者
 int x;

sscanf("abc", "%x", x);
int hex_char_value(char c)     
{     
        if(c >= '0' && c <= '9')     
                return c - '0';     
        else if(c >= 'a' && c <= 'f')     
                return (c - 'a' + 10);     
        else if(c >= 'A' && c <= 'F')     
                return (c - 'A' + 10);     
        assert(0);     
        return 0;     
}     
int hex_to_decimal(const char* szHex, int len)     
{     
        int result = 0;     
        for(int i = 0; i < len; i++)     
        {     
                result += (int)pow((float)16, (int)len-i-1) * hex_char_value(szHex[i]);     
        }     
        return result;     
}   

直接赋值
uint16_t hex = 0x1212;
int dec = hex;

32位操作系统
int16 字节数16
int 字节数32

int16转int:int16 & 0x0000FFFF

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐