Народ, помогите кусок кода на C# перевести — я только начал писать, еще не
до конца разобрался.....
int calc_crc(char *s)
//char *s; /* строка, терминированная 0 */
{
register unsigned int r = 0;
register unsigned int m = 0x800100;
int j;
int loop;
char *p;
for (p=s; *p; p++) {
r |= *p;
loop = p[1] ? 1 : 3;
while (loop--) {
for (j=0; j<8; j++)
if ( (r *= 2) & 0x1000000 )
r = (~(r & m) & m) | (r & ~m);
// r &=0xffff00;
}
}
r /= 256;
return(r&0xFFFF);
}
int check_crc(char *s)
{
register unsigned int r = 0;
register unsigned int m = 0x800100;
int i, j, stop;
char *p;
i = stop = r = 0;
j = strlen((char*)s);
while (s[i++] != LF) if (i >= j) return(0);
for (p=&s[i]; stop!=1; p++) {
r |= *p;
for (j=0; j<8; j++)
if ( (r *= 2) & 0x1000000 )
r = (~(r & m) & m) | (r & ~m);
if (stop) stop--;
else if (*p == CR) stop = 3;
}
return(r & 0xFFFFFF);
}