hex2int

来源:互联网 发布:用sql创建数据库 编辑:程序博客网 时间:2024/06/05 12:08

 

/*hex string*/

unsigned int HEX2int(char *pcBCD)

{

char acBCD[8] = {0};

unsigned int nReval = 0;

int nPower = 1;

int nStrlen = strlen(pcBCD);

memcpy(acBCD, pcBCD, nStrlen);

while(nStrlen--)

{

/*

if(acBCD[nStrlen] >= 'A' && acBCD[nStrlen] <= 'F')

{

nReval += (acBCD[nStrlen] - 55)*nPower;

}

else if(acBCD[nStrlen] >= 'a' && acBCD[nStrlen] <= 'f')

{

nReval += (acBCD[nStrlen] - 87)*nPower;

}

*/

if(isdigit(acBCD[nStrlen]) == 0)

{

acBCD[nStrlen] = acBCD[nStrlen]&0x4f;

nReval += (acBCD[nStrlen] - 55)*nPower;

}

else

{

nReval += (acBCD[nStrlen] - '0')*nPower;

}

nPower *= 16; 

}

return nReval;

}