unsigned int pows(int num,int size)
{
if(size<=0) return 1;
else return num* pows(num,size-1);
}
/***
*@buffer 字符数组
*@len buffer长度
*@reserve 是否倒序 (注意字节大小端问题)
*/
unsigned int hex_to_int(unsigned char *buffer,int len,bool reserve=true)
{
unsigned int numbers=0;
int i=len-1;
if(reserve)
{
while(i>=0)
{
unsigned char pb=*(buffer+i);
numbers+= ((pb&0x0f) * pows(16,2*i)+(pb>>4 & 0x0f) * pows(16,2*i+1));
i--;
}
}
else
{
i=0;
while(i<len)
{
unsigned char pb=*(buffer+i);
numbers+= ((pb&0x0f) * pows(16,2* (len-i-1))+(pb>>4 & 0x0f) * pows(16,2*(len-i-1)+1));
i++;
}
}
return numbers;
}