Y

#### yezi

I am reading the following code:

unsigned long crcbitbybitfast(unsigned char* p, unsigned long len) {

// fast bit by bit algorithm without augmented zero bytes.

// does not use lookup table, suited for polynom orders between

1...32.

unsigned long i, j, c, bit;

unsigned long crc = crcinit_direct;

for (i=0; i<len; i++) {

c = (unsigned long)*p++;

for (j=0x80; j; j>>=1) {

bit = crc & crchighbit;

crc<<= 1;

if (c & j) bit^= crchighbit;

if (bit) crc^= polynom;

}

}

if (refout) crc=reflect(crc, order);

crc^= crcxor;

crc&= crcmask;

return(crc);

}

bit^= crchighbit; what is that mean?

Thanks for any clue.

bin YE