lizhendong
級(jí)別: 家園?
精華主題: 0
發(fā)帖數(shù)量: 609 個(gè)
工控威望: 800 點(diǎn)
下載積分: 1992 分
在線時(shí)間: 845(小時(shí))
注冊(cè)時(shí)間: 2016-10-12
最后登錄: 2024-11-09
查看lizhendong的 主題 / 回貼
樓主  發(fā)表于: 2022-07-10 22:57
這個(gè)函數(shù)原理和調(diào)用????C的高手看看。。


static const char sel[] = {
'B','C','D','F','G',
'H','J','K','M','P',
'Q','R','T','V','W',
'X','Y','2','3','4',
'6','7','8','9', '\0'};

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;
}
13821917697
承接電氣自動(dòng)化項(xiàng)目、電氣接線圖設(shè)計(jì)、IO點(diǎn)表、電氣元器件選型
級(jí)別: 工控俠客
精華主題: 0
發(fā)帖數(shù)量: 754 個(gè)
工控威望: 3140 點(diǎn)
下載積分: 13282 分
在線時(shí)間: 1055(小時(shí))
注冊(cè)時(shí)間: 2019-12-26
最后登錄: 2024-11-10
查看13821917697的 主題 / 回貼
1樓  發(fā)表于: 2022-07-11 15:15
圖片:
好像就是類似動(dòng)態(tài)密碼的東西,把你輸入的東西,按照這個(gè)轉(zhuǎn)換成一個(gè)碼,碼由你最上面定義的那個(gè)字符數(shù)組組成。
本帖最近評(píng)分記錄:
  • 下載積分:+1(lizhendong) 熱心助人!