BIN轉換成HEX格式及HEX轉換成BIN的兩個函數接口


unsigned char HEX2BYTE(unsigned char hex_ch)
{
    if (hex_ch >= '0' && hex_ch <= '9')
    {
        return hex_ch - '0';
    }

    if (hex_ch >= 'a' && hex_ch <= 'f')
    {
        return hex_ch - 'a' + 10;
    }

    if (hex_ch >= 'A' && hex_ch <= 'F')
    {
        return hex_ch - 'A' + 10;
    }

    return 0x00;
}

unsigned char _4BIT2HEX(unsigned char part_cn)
{
    if (part_cn >= 10) {
        return (unsigned char )(part_cn - 10 + 'A');
    } else {
        return (unsigned char )(part_cn + '0');
    }
}

void StrToHex(const unsigned char* in, long inlen, unsigned char* out, long* outlen) 
{
    *outlen = inlen/2;
    memset(out, 0, *outlen);
    for (int i = 0; i < *outlen; i ++) {
        out[i] = (HEX2BYTE(in[i*2]) << 4) | HEX2BYTE(in[i*2 + 1]);
    }
}

void HexToStr(const unsigned char* in, long inlen, unsigned char* out, long* outlen)
{
    *outlen = inlen*2;
    memset(out, 0, *outlen  + 1);
    for (int i = 0, j = 0; i < *outlen; i ++, i++, j++) {
        out[i] = _4BIT2HEX(((in[j]) & 0xF0)>>4);
        out[i+1] = _4BIT2HEX(((in[j]) & 0x0F));
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM