天天看點

16進制字元串數轉10進制整數

bool hexchar2int(char* p, int* num)

{

    if (*p >= '0' && *p <= '9')

        *num = *p - '0';

    else if (*p >= 'A' && *p <= 'F')

        *num = *p - 'A' + 10;

    else if (*p >= 'a' && *p <= 'f')

        *num = *p - 'a' + 10;

    else

        return false;

    return true;

}

mac位址的一段轉整數

bool mac2int(char* p, int* num)

{

    int high = 0, low = 0;

    if (!hexchar2int(p, &high))

        return false;

    if (!hexchar2int(p + 1, &low))

        return false;    

    *num = high * 16 + low;

    return true;

}

舉例

void main()

{

    char arr[3] = "cc";

    int num;

    mac2int(arr, &num);

}

繼續閱讀