Термотроник АДИ-0-0 [19/24] Приложение 2 функции преобразования в ascii и обратно

Термотроник АДИ-0-0 [19/24] Приложение 2 функции преобразования в ascii и обратно
АДИ Описание протокола обмена с.19
Приложение 2. Функции преобразования в ASCII и обратно
Ниже приведены примеры на языке СИ функций преобразования из ASCII формата
в двоичный и обратного преобразования из двоичного в ASCII.
const unsigned char CharToBin[23]={0,1,2,3,4,5,6,7,8,9,
0,0,0,0,0,0,0,
10,11,12,13,14,15};
const char BinToChar[16]={'0','1','2','3','4','5','6','7',
'8','9','A','B','C','D','E','F'};
char TwoASCIItoBIN(char *cptr, unsigned char *bptr)
{
char ca,i;
unsigned char cb;
cb=0;
for(i=0; i<2; i++)
{
ca=*cptr++;
cb<<=4;
if((ca >= '0') && (ca <= '9') || (ca >= 'A') && (ca <=
'F'))
cb|=CharToBin[ca-0x30];
else
return(0);
}
*bptr=cb;
return(1);
}
где:
cptr указатель на буфер, содержащий символы ASCII;
bprt - указатель на буфер, куда записываются двоичные байты.
void BINtoTwoASCII(unsigned char *bptr, char *cptr)
{
unsigned char cb;
cb=*bptr;
*cptr=BinToChar[(cb>>4) & 0x0F];
cptr++;
*cptr=BinToChar[cb & 0x0F];
}
где:
bptr указатель на буфер, содержащий двоичные байты;
cprt - указатель на буфер, куда записываются символы ASCII.

Содержание

Похожие устройства