2 qq 38120471 qq_38120471 于 2017.09.15 16:01 提问

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

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

5个回答

cashT
cashT   2017.09.15 16:07
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;     
}   
cashT
cashT   2017.09.15 16:08
 或者
 int x;

sscanf("abc", "%x", x);
XianRenShan
XianRenShan   2017.09.15 16:08
xie_zhao
xie_zhao   2017.09.15 16:09

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

xingyun86
xingyun86   2017.09.15 18:43

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

int16转int:int16 & 0x0000FFFF

Csdn user default icon
上传中...
上传图片
插入图片