[an error occurred while processing this directive]
|
|
const unsigned char Tet2Ham[] = {
0x00, 0x51, 0x72, 0x23, 0x34, 0x65, 0x46, 0x17,
0x68, 0x39, 0x1A, 0x4B, 0x5C, 0x0D, 0x2E, 0x7F
};unsigned short Ham(unsigned char Value)
{
return Tet2Ham[Value&0x0F] | (Tet2Ham[Value>>4]<<8);
}const unsigned char HamAdd[] = {
0x00, 0x05, 0x07, 0x02, 0x03, 0x06, 0x04, 0x01,
0x06, 0x03, 0x01, 0x04, 0x05, 0x00, 0x02, 0x07
};
const unsigned char HamXor[] = {
0x00, 0x00, 0x00, 0x04, 0x00, 0x01, 0x08, 0x02
};
unsigned char UnHam(unsigned short h)
{
unsigned char data1 = h&0xFF, data2=h>>8;
data1 ^= HamXor[ (data1>>4) ^ HamAdd[data1&0x0F] ];
data2 ^= HamXor[ (data2>>4) ^ HamAdd[data2&0x0F] ];return (data1&0x0F)|(data2<<4);
}
E-mail: info@telesys.ru