lizhendong
級別: 家園常客
精華主題: 0
發(fā)帖數(shù)量: 608 個
工控威望: 800 點
下載積分: 1992 分
在線時間: 851(小時)
注冊時間: 2016-10-12
最后登錄: 2024-12-22
查看lizhendong的 主題 / 回貼
樓主  發(fā)表于: 2023-07-27 18:25
C語言大俠們,如何詳細解讀這兩個函數(shù)???


char *b24e(char *buf, unsigned char *byst, size_t sizeOfBytes)
{
    int i = 0;
    unsigned char *p = byst;
    while ((size_t)(i = (p-byst)) < sizeOfBytes) {
        buf[2*i] = sel[((*p) >> 4)];
        buf[(2*i)+1] = sel[23 - ((*p) & 0x0f)];
        p++;
    }
    buf[(2*i)+1] = '\0';
    return buf;
}

unsigned char *b24d(unsigned char *buf, char *str, size_t countOfChars)
{
    size_t i;
    char *p = str;
    char *loc[2];
    unsigned char n[2];
    if (countOfChars % 2)
        return NULL;
    for (i = 0; i < (countOfChars>>1); i++) {

        loc[0] = strchr( sel, str[2*i] );
        loc[1] = strchr( sel, str[ ( 2*i ) + 1 ] );
        if (loc[0] == NULL || loc[1] == NULL)
            return NULL;
        n[0] = (unsigned char)( loc[0] - sel );
        n[1] = 23 - (unsigned char)( loc[1] - sel );
        buf = (unsigned char)((n[0] << 4) | n[1]);
    }
    return buf;
}
金蛇郎君czz
車到山前必有路 czz674613079@163.com
級別: 網(wǎng)絡(luò)英雄
精華主題: 0
發(fā)帖數(shù)量: 1928 個
工控威望: 7499 點
下載積分: 504 分
在線時間: 439(小時)
注冊時間: 2019-05-22
最后登錄: 2024-12-22
查看金蛇郎君czz的 主題 / 回貼
1樓  發(fā)表于: 2023-07-28 11:14
跟大佬們學(xué)習(xí)一下
czz674613079@163.com