C语言十六进制字符串转十六进制数值

void StrToDec(CPU_INT08U *GPRSAddr, CPU_INT16U *GPRSAddrDec, CPU_INT08U nLen)
{
    CPU_INT08U i;
    

    for(i=0;i<nLen;i++)
    {
        if((*(GPRSAddr+i)>='0')&&(*(GPRSAddr+i)<='9'))
        {
            *GPRSAddrDec+=(*(GPRSAddr+i)-'0')*(unsigned short)pow(16,nLen-i-1);
        }
        else if((*(GPRSAddr+i)>='a')&&(*(GPRSAddr+i)<='f'))
        {
            *GPRSAddrDec+=(*(GPRSAddr+i)-'a'+10)*(unsigned short)pow(16,nLen-i-1);            
        }
        else if((*(GPRSAddr+i)>='A')&&(*(GPRSAddr+i)<='F'))
        {
            *GPRSAddrDec+=(*(GPRSAddr+i)-'A'+10)*(unsigned short)pow(16,nLen-i-1);            
        }
    }
    return;
}
 

int main(void)

{

      CPU_INT16U  GPRSAddr[];

      CPU_INT16U    GPRSAddrDec;

        StrToDec(GPRSAddr,&GPRSAddrDec,2);

}

猜你喜欢

转载自blog.csdn.net/ninioq/article/details/84255953