kopia lustrzana https://github.com/rs1729/RS
ecc: error correction/crc
rodzic
0f56d68e5c
commit
8bcb6a51b5
|
@ -0,0 +1,186 @@
|
|||
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
|
||||
// CRC16
|
||||
// Generatorpolynom x^16+x^12+x^5+1 = (1) 0001 0000 0010 0001 = 0x(1)1021
|
||||
#define CRC 16
|
||||
#define CODELEN_CRC (2*0xDF)
|
||||
unsigned char msg[CODELEN_CRC],
|
||||
par[8];
|
||||
char bitstr[CODELEN_CRC*8+1+32*8];
|
||||
char g16[] = "10001000000100001"; // big endian
|
||||
unsigned int crc16poly = 0x1021;
|
||||
unsigned int crc16init = 0xFFFF; // 16bit
|
||||
|
||||
|
||||
// BCH-Code (63,51)
|
||||
// Generatorpolynom x^12+x^10+x^8+x^5+x^4+x^3+1
|
||||
#define BCH 46
|
||||
#define CODELEN_BCH 46
|
||||
char g12[] = "1010100111001"; // big endian
|
||||
|
||||
|
||||
char *g = NULL;
|
||||
int msglen, parlen;
|
||||
|
||||
int option = 0;
|
||||
|
||||
|
||||
int check(char *str) {
|
||||
while (*str) {
|
||||
//printf("%02X ", *str);
|
||||
if (*str < 0x30 || *str > 0x31) return -1;
|
||||
str++;
|
||||
}
|
||||
//printf("\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
int deg(char *x) {
|
||||
int i;
|
||||
i = strlen(x);
|
||||
while (*x && *x == '0') {
|
||||
x++;
|
||||
i--;
|
||||
}
|
||||
return i-1;
|
||||
}
|
||||
|
||||
char *shortstr(char *x) {
|
||||
if (strlen(x) <= 1) return x;
|
||||
while (strlen(x) > 1 && *x == '0') x++;
|
||||
return x;
|
||||
}
|
||||
|
||||
int polymodcheck(char *x) {
|
||||
int i, j, d;
|
||||
char *t = malloc(strlen(x)+1);
|
||||
char *taddr = t;
|
||||
t[0] = '\0';
|
||||
for (i = 0; i < strlen(x)+1; i++) t[i] = x[i];
|
||||
t = shortstr(t);
|
||||
d = strlen(t);
|
||||
printf("%s\n", t);
|
||||
printf("%s\n", g);
|
||||
while (deg(t) >= deg(g)) {
|
||||
for (i = 0; i < strlen(g); i++) {
|
||||
if (t[i] == g[i]) t[i] = '0'; else t[i] = '1';
|
||||
}
|
||||
t = shortstr(t);
|
||||
for (j = 0; j < d-strlen(t); j++) printf(" ");
|
||||
printf("%s\n", t);
|
||||
if (t[0] == '0') return 0;
|
||||
for (j = 0; j < d-strlen(t); j++) printf(" ");
|
||||
printf("%s\n", g);
|
||||
}
|
||||
printf("%s\n", t);
|
||||
free(taddr);
|
||||
return 1;
|
||||
}
|
||||
|
||||
unsigned int crc16(unsigned char bytes[], int len) {
|
||||
unsigned int rem = crc16init; // init value
|
||||
int i, j;
|
||||
for (i = 0; i < len; i++) {
|
||||
rem = rem ^ (bytes[i] << 8);
|
||||
for (j = 0; j < 8; j++) {
|
||||
if (rem & 0x8000) {
|
||||
rem = (rem << 1) ^ crc16poly;
|
||||
}
|
||||
else {
|
||||
rem = (rem << 1);
|
||||
}
|
||||
rem &= 0xFFFF;
|
||||
}
|
||||
}
|
||||
return rem;
|
||||
}
|
||||
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
char *str;
|
||||
int i, j, rem, byt;
|
||||
|
||||
if (argv[1]) {
|
||||
if (strcmp(argv[1], "--crc") == 0) option = CRC;
|
||||
if (strcmp(argv[1], "--bch") == 0) option = BCH;
|
||||
}
|
||||
if (!argv[1] || !option) {
|
||||
fprintf(stderr, "%s --crc <hexstring> [crc]\n", argv[0]);
|
||||
fprintf(stderr, "%s --bch <bitstring> \n", argv[0]);
|
||||
return 0;
|
||||
}
|
||||
|
||||
str = argv[2];
|
||||
|
||||
if (option == CRC) {
|
||||
|
||||
msglen = strlen(str)/2;
|
||||
if (msglen > 2*CODELEN_CRC) {
|
||||
fprintf(stderr, "len > %d\n", CODELEN_CRC);
|
||||
return -3;
|
||||
}
|
||||
|
||||
for (i = 0; i < msglen; i++) sscanf(argv[2]+2*i, "%2hhx", msg+i);
|
||||
rem = crc16(msg, msglen);
|
||||
printf("%04X\n", rem);
|
||||
|
||||
g = g16;
|
||||
parlen = (strlen(g)-1)/8;
|
||||
|
||||
for (i = 0; i < msglen; i++) {
|
||||
byt = msg[i];
|
||||
if (i < 2) byt ^= (crc16init >> (8*(1-i))) & 0xFF; // init value 0xFFFF
|
||||
for (j = 0; j < 8; j++) {
|
||||
bitstr[8*i+7-j] = (byt & 0x1) + 0x30;
|
||||
byt >>= 1;
|
||||
}
|
||||
}
|
||||
// wenn crc nicht angehaengt, dann x^n shiften:
|
||||
for (i = 0; i < 8*parlen; i++) bitstr[8*msglen+i] = 0x30;
|
||||
if (argv[3] && strlen(argv[3])/2 == parlen) {
|
||||
for (i = 0; i < parlen; i++) {
|
||||
sscanf(argv[3]+2*i, "%2hhx", par+i);
|
||||
byt = par[i];
|
||||
for (j = 0; j < 8; j++) {
|
||||
bitstr[8*(msglen+parlen-1-i)+7-j] = (byt & 0x1) + 0x30;
|
||||
byt >>= 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
/*
|
||||
for (i = 0; i < msglen; i++) printf("%02X ", msg[i]);
|
||||
printf(" "); for (i = 0; i < parlen; i++) printf("%02X ", par[i]);
|
||||
printf("\n");
|
||||
*/
|
||||
str = shortstr(bitstr);
|
||||
}
|
||||
else if (option == BCH) {
|
||||
|
||||
if (strlen(str) > CODELEN_BCH) {
|
||||
printf("CODELEN\n");
|
||||
return -3;
|
||||
}
|
||||
|
||||
str = shortstr(str);
|
||||
if (check(str)) {
|
||||
printf("nicht in GF(2)[X]\n");
|
||||
return -1;
|
||||
}
|
||||
//printf("f = %s\n", str);
|
||||
//printf("deg(f) = %d\n", deg(str));
|
||||
g = g12;
|
||||
|
||||
}
|
||||
|
||||
//if (option != CRC)
|
||||
polymodcheck(str);
|
||||
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -0,0 +1,436 @@
|
|||
|
||||
Meisei
|
||||
======
|
||||
BCH(63,51)-Code mit Generatorpolynom
|
||||
x^12+x^10+x^8+x^5+x^4+x^3+1.
|
||||
gekuerzt auf (46,34), die letzten 12 bit sind die BCH-Kontrollbits.
|
||||
|
||||
Das Generatorpolynom kann man finden, wenn man geeignete Codewoerter addiert (linearer Code),
|
||||
um das kleinste Codewort ungleich 0 zu finden, z.B.:
|
||||
|
||||
0000000000000000 1 0000000000000000 1 000010111011
|
||||
+
|
||||
0000000000000000 1 0000000000000010 0 010001011111
|
||||
=
|
||||
0000000000000000 0 0000000000000010 1 010011100100
|
||||
->
|
||||
101010011100100 = (x^12+x^10+x^8+x^5+x^4+x^3+1)x^2
|
||||
|
||||
Die 34 Nachrichtenbit sind aufgeteilt in 16+1+16+1, d.h. nach einem 16 bit Block kommt ein Paritaetsbit,
|
||||
dass 1 ist, wenn die Anzahl 1en in den 16 bit davor gerade ist und sonst 0.
|
||||
|
||||
Um nur zu pruefen, kann man Polynomdivision durchfuehren (CRC):
|
||||
1)
|
||||
0000000000000000 1 0000000000000000 1 000010111011 : 0000 0000 0BB
|
||||
-> 0000000000000000100000000000000001000010111011
|
||||
|
||||
./crc_polymod --bch 0000000000000000100000000000000001000010111011
|
||||
100000000000000001000010111011
|
||||
1010100111001
|
||||
1010011100100001000010111011
|
||||
1010100111001
|
||||
111011101001000010111011
|
||||
1010100111001
|
||||
10001110101100010111011
|
||||
1010100111001
|
||||
100111011110010111011
|
||||
1010100111001
|
||||
1101000010110111011
|
||||
1010100111001
|
||||
111100101111111011
|
||||
1010100111001
|
||||
10110110011011011
|
||||
1010100111001
|
||||
11111101001011
|
||||
1010100111001
|
||||
1010100111001
|
||||
1010100111001
|
||||
0
|
||||
|
||||
2)
|
||||
0000000000000000 1 1010111100100010 1 000110000001 : 0000 AF22 181
|
||||
-> 0000000000000000110101111001000101000110000001
|
||||
|
||||
./crc_polymod --bch 0000000000000000110101111001000101000110000001
|
||||
110101111001000101000110000001
|
||||
1010100111001
|
||||
11111100101100101000110000001
|
||||
1010100111001
|
||||
1010101011110101000110000001
|
||||
1010100111001
|
||||
1100111101000110000001
|
||||
1010100111001
|
||||
110011010001110000001
|
||||
1010100111001
|
||||
11001001101010000001
|
||||
1010100111001
|
||||
1100000011000000001
|
||||
1010100111001
|
||||
110100100001000001
|
||||
1010100111001
|
||||
11110111101100001
|
||||
1010100111001
|
||||
1011110011110001
|
||||
1010100111001
|
||||
1010100111001
|
||||
1010100111001
|
||||
0
|
||||
|
||||
|
||||
|
||||
|
||||
Vaisala
|
||||
=======
|
||||
http://www.vaisala.com/Vaisala%20Documents/Vaisala%20News%20Articles/VN164/VN164_State-of-the-Art_Radiosonde_Telemetry.pdf
|
||||
|
||||
CRC16: (poly=0x(1)1021, init=0xFFFF)
|
||||
Reed-Solomon:
|
||||
RS(255,231)
|
||||
GF(2^8)=GF(2)[x]/(f): f=x^8+x^4+x^3+x^2+1 = 0x11D
|
||||
Generator von GF(2^8)*: alpha=0x02 (primitive Einheitswurzel)
|
||||
Generatorpolynom fuer RS-Code:
|
||||
(X-alpha^0)...(X-alpha^23) =
|
||||
X^24 + 0x7A X^23 + 0x76 X^22 + 0xA9 X^21 + 0x46 X^20 + 0xB2 X^19 + 0xED X^18 + 0xD8 X^17 + 0x66 X^16 + 0x73 X^15 + 0x96 X^14 + 0xe5 X^13 + 0x49 X^12
|
||||
+ 0x82 X^11 + 0x48 X^10 + 0x3D X^9 + 0x2B X^8 + 0xCE X^7 + 0x01 X^6 + 0xED X^5 + 0xF7 X^4 + 0x7F X^3 + 0xD9 X^2 + 0x90 X + 0x75
|
||||
|
||||
|
||||
RS92:
|
||||
HEADER 6
|
||||
DATA 210
|
||||
RS-PARITY 24
|
||||
|
||||
./ecc-rs_vaisala 2a2a2a2a2a106510e81820204b34393533393334006100083d3d07b342bb3e9809d3bc3f754c963bebfb690cca2b0fd9670f00670f8c0f11a458111e8810da410d30430ddc84673db01c852167ab07298b3cb05a536e0fffcf4faf7f4f3fff8fcfffffffff7fe5918aef20e8110175879900d0e0e900061f8c048aa393009edea1fe2557dc0019549f04b5160d00ae998b00e12a4200370b8608cacc1900b3e08905bd60040126da9303e1d4b4006d04a00573469700d6a98b00699f120195828f046ed7680503030000000000000000b27dff0202000200f0be2a40a7cd69b9ed0668ec12182e8560ea6dd0733612a1
|
||||
RS92
|
||||
codeword
|
||||
errors: 0
|
||||
0000000000000000000000000000000000000000000002000202FF7DB2000000000000000003030568D76E048F829501129F69008BA9D60097467305A0046D00B4D4E10393DA26010460BD0589E0B30019CCCA08860B3700422AE1008B99AE000D16B5049F541900DC5725FEA1DE9E0093A38A048C1F0600E9E0D0009987750111E820EF8A91E57FFFFFFFFFCF8FFF3F4F7FAF4FCFFF0F6E535AB03C8B2907AB6721851CB03D6784DC0D43300D41DA10881E1158A4110F8C0F67000F67D90F2BCA0C69FBEB3B964C753FBCD309983EBB42B3073D3D08006100343339333539344B202018E81065A1123673D06DEA60852E1812EC6806EDB969CDA7402ABEF0
|
||||
frame:
|
||||
2a2a2a2a2a106510e81820204b34393533393334006100083d3d07b342bb3e9809d3bc3f754c963bebfb690cca2b0fd9670f00670f8c0f11a458111e8810da410d30430ddc84673db01c852167ab07298b3cb05a536e0fffcf4faf7f4f3fff8fcfffffffff7fe5918aef20e8110175879900d0e0e900061f8c048aa393009edea1fe2557dc0019549f04b5160d00ae998b00e12a4200370b8608cacc1900b3e08905bd60040126da9303e1d4b4006d04a00573469700d6a98b00699f120195828f046ed7680503030000000000000000b27dff0202000200f0be2a40a7cd69b9ed0668ec12182e8560ea6dd0733612a1
|
||||
|
||||
|
||||
RS41:
|
||||
HEADER 8
|
||||
RS-PARITY 48 = 2*24
|
||||
DATA 264-462 (max 2*231=462)
|
||||
|
||||
"interleaved"
|
||||
Die 2 Codewoerter setzen sich zusammen aus den DATA-Bytes an den geraden bzw. ungeraden Positionen und ersten bzw. zweiten RS-PARITY-Teil.
|
||||
|
||||
RS(231,255) RS(231,255) L=40 CRC L=42 CRC L=30 CRC L=89 CRC L=21 CRC L=17 CRC
|
||||
8635f44093df1a60 2c87e0fa0521e8943d9cef4c7a67393f6d39fb546461f2111b6447ab79a746c80350cda5344157f8c0c12234f4690222 0f 7928 16174b313933303239331a00000300000a00002f0007322ce53e31991abf12dada3eb68468c16755 d51c 7a2a 15310216060245f302000d08a31607821e08bb210219060243f302000000000000000000000000000000 220d 7c1e 0807d03cdc071fd81ddb19d70a8d0eb602b60cb518d40692ff00ff00ff00 1c27 7d59 b8d83301ff0f881f0f38f4fe18b283038735ff000000003eb8ff4947201e6e3aff55415f13fc6e005440440cf100009e9f7406f85800832b631719d70010bebc172a8b00000000000000000000000000000000000000000000 a48b 7b15 366181193ef05d07e1245b1be0f721f801f6080410 7b0b 7611 0000000000000000000000000000000000 ecc7
|
||||
1)
|
||||
8635f44093df1a60 (HDR)
|
||||
2c87e0fa0521e8943d9cef4c7a67393f6d39fb546461f2111b6447ab79a746c80350cda5344157f8c0c12234f4690222 (2xRS)
|
||||
0f
|
||||
7928 (L=0x28=40)
|
||||
16174b313933303239331a00000300000a00002f0007322ce53e31991abf12dada3eb68468c16755 d51c (CRC-OK)
|
||||
7a2a (L=0x2a=42)
|
||||
15310216060245f302000d08a31607821e08bb210219060243f302000000000000000000000000000000 220d (CRC-OK)
|
||||
7c1e (L=0x1e=30)
|
||||
0807d03cdc071fd81ddb19d70a8d0eb602b60cb518d40692ff00ff00ff00 1c27 (CRC-OK)
|
||||
7d59 (L=0x59=89)
|
||||
b8d83301ff0f881f0f38f4fe18b283038735ff000000003eb8ff4947201e6e3aff55415f13fc6e005440440cf100009e9f7406f85800832b631719d70010bebc172a8b00000000000000000000000000000000000000000000 a48b (CRC-OK)
|
||||
7b15 (L=0x15=21)
|
||||
366181193ef05d07e1245b1be0f721f801f6080410 7b0b (CRC-OK)
|
||||
7611 (L=0x11=17)
|
||||
0000000000000000000000000000000000 ecc7 (CRC-OK)
|
||||
|
||||
./ecc-rs_vaisala 8635f44093df1a602c87e0fa0521e8943d9cef4c7a67393f6d39fb546461f2111b6447ab79a746c80350cda5344157f8c0c12234f46902220f792816174b313933303239331a00000300000a00002f0007322ce53e31991abf12dada3eb68468c16755d51c7a2a15310216060245f302000d08a31607821e08bb210219060243f302000000000000000000000000000000220d7c1e0807d03cdc071fd81ddb19d70a8d0eb602b60cb518d40692ff00ff00ff001c277d59b8d83301ff0f881f0f38f4fe18b283038735ff000000003eb8ff4947201e6e3aff55415f13fc6e005440440cf100009e9f7406f85800832b631719d70010bebc172a8b00000000000000000000000000000000000000000000a48b7b15366181193ef05d07e1245b1be0f721f801f60804107b0b76110000000000000000000000000000000000ecc7
|
||||
RS41
|
||||
codeword1
|
||||
errors: 0
|
||||
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000EC0000000000000000110B10080121E05BE15D3E81367BA400000000000000000000002ABC10D7172B00F8749E000C4000FC5F553A1E47FF3E00003503B2FE381F0F01D8592700000092D4B5B6B68DD7DBD8073C071E0D0000000000000000F30219210882160800F30216312A1C55C1843EDABF993E2C072F000003003332333117280F11F2616454FB396D3F39677A4CEF9C3D94E82105FAE0872C
|
||||
codeword2
|
||||
errors: 0
|
||||
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000C7000000000000000000767B04F6F8F71B2407F01961158B00000000000000000000008B17BE0019638358069F00F144546E1341FF6E2049B80000FF878318F40F88FF33B87D1CFFFFFF06180C020E0A191D1FDCD0087C220000000000000002430602BB1E07A30D02450602157AD56768B6DA121A31E53200000A00001A3930394B1679220269F43422C1C0F8574134A5CD5003C846A779AB47641B
|
||||
frame:
|
||||
8635f44093df1a602c87e0fa0521e8943d9cef4c7a67393f6d39fb546461f2111b6447ab79a746c80350cda5344157f8c0c12234f46902220f792816174b313933303239331a00000300000a00002f0007322ce53e31991abf12dada3eb68468c16755d51c7a2a15310216060245f302000d08a31607821e08bb210219060243f302000000000000000000000000000000220d7c1e0807d03cdc071fd81ddb19d70a8d0eb602b60cb518d40692ff00ff00ff001c277d59b8d83301ff0f881f0f38f4fe18b283038735ff000000003eb8ff4947201e6e3aff55415f13fc6e005440440cf100009e9f7406f85800832b631719d70010bebc172a8b00000000000000000000000000000000000000000000a48b7b15366181193ef05d07e1245b1be0f721f801f60804107b0b76110000000000000000000000000000000000ecc7
|
||||
|
||||
2)
|
||||
./ecc-rs_vaisala 8635f44093df1a60421080e56396389c102cf6db9276308a11f9f8792cb620beae0662688bba0eb2c0bdfa3bd10f0368c07ad0ac33c77046f0792888134b343032303234341c00000100000d00007a000732013230323434254e00002c011205b43ca475537a2a95050229fd015be502d931084d2a075b3308ed060228fd015de50200000000000000000000000000000061d67c1e4d07a0ba92170e9003fa01f813b40c921ed811fa0bf504d20af920fa17f765137d59950b3501ffc43086200a1101420000000521008f527605b1b600faa7e10e3b1301acce8e1c78c5ff0de3c41479b6ff48781a09dcfdffa2f1c30d51190151e0e4113d1701e27da60504a4ffdb2511085bd1003f05bd0c8346ffda787b156d2f421735a22f00f88b0b1ea7fe220b23030902112a417ea5d0343030333030303120313036313320202033312e362030363733203033353220303730302031323235312033383030203133343036203535333920313430353820353239332037383030203830323120373334203931392039353533383738203937323839373820343238383338353332362032393032313631203539313039203335303539203637303020333738352034363838203636393920363839392038303030c8e4762e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000bf08
|
||||
RS41
|
||||
codeword1
|
||||
errors: 1
|
||||
pos: 136
|
||||
BF000000000000000000000000000000000000000000000076C830383938203936383620383330372035352030392036323920323533383438393239383835393939343731302030373332203534203335363431303820353220303032332037303631202031302030303034A54111092322A70BF82F35426D7BDA460C05005B11DBA4057D013DE450190DF1FFDC1A48B614E3FF788EAC130EA700B1768F210000010A86C4010B5913F7FAF9D2F5FAD892B4F8FA9017BA071ED60000000000000000E5012806085B2A08D9E50129052A53A4B4122C0025343001077A00000100343232341328F0BE20B62C79F8F9118A307692DBF62C109C389663E5801042
|
||||
codeword2
|
||||
errors: 2
|
||||
pos: 106 176
|
||||
0800000000000000000000000000000000000000000000002EE43030203936393620383435372030363930333931353131303236333838322037383720373335203120332032383038203935383031393520303320303331323130372035303336202E332033363131303130D07E2A02030BFE1E8B00A2172F1578FF83BD3FD10825FF04A6E21711E00151C3A2FD0978FF79C40DC51CCE013BE1FAB6055200050042112030FF35957D6517200A040B111F0C1301030E92A04D7C6100000000000000025DFD02ED33074D31025BFD02957A753C0501004E3432323200000D00001C3430304B88794670C733ACD07AC068030FD13BFABDC0B20EBA8B686206AE
|
||||
frame:
|
||||
8635f44093df1a60421080e56396389c102cf6db9276308a11f9f8792cb620beae0662688bba0eb2c0bdfa3bd10f0368c07ad0ac33c77046f0792888134b343032303234341c00000100000d00007a000732013230323434254e00002c011205b43ca475537a2a95050229fd015be502d931084d2a075b3308ed060228fd015de50200000000000000000000000000000061d67c1e4d07a0ba92170e9003fa01f813b40c921fd811fa0bf504d20af920fa17f765137d59950b3501ffc43086200a1101420000000521008f527605b1b600faa7e10e3b1301acce8e1c78c5ff0de3c41479b6ff48781a09dcfdffa2f1c30d51190150e0e4113d1701e27da60504a4ffdb2511085bd1003f05bd0c8346ffda787b156d2f421735a22f00f88b0b1ea7fe220b23030902112a417ea5d0343030313030303120313036313320202033312e362030363733203033353220303730302031323235312033383030203133343036203535333920313430353820353239332037383030203830323120373334203931392039353533383738203937323839373820343238383338353332362032393032313631203539313039203335303539203637303020333738352034363838203636393920363839392038303030c8e4762e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000bf08
|
||||
|
||||
|
||||
CRC16:
|
||||
./crc_polymod --crc 0000000000000000000000000000000000 ecc7
|
||||
C7EC
|
||||
11111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001100011111101100
|
||||
10001000000100001
|
||||
1110111111011111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001100011111101100
|
||||
10001000000100001
|
||||
110011111001111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001100011111101100
|
||||
10001000000100001
|
||||
10001111000111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001100011111101100
|
||||
10001000000100001
|
||||
111000011111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001100011111101100
|
||||
10001000000100001
|
||||
11010011110000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001100011111101100
|
||||
10001000000100001
|
||||
1011011110100011000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001100011111101100
|
||||
10001000000100001
|
||||
11111110110011100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001100011111101100
|
||||
10001000000100001
|
||||
1110110110111101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001100011111101100
|
||||
10001000000100001
|
||||
110010110101101100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001100011111101100
|
||||
10001000000100001
|
||||
10000110100101110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001100011111101100
|
||||
10001000000100001
|
||||
1110100001111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001100011111101100
|
||||
10001000000100001
|
||||
110000001101000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001100011111101100
|
||||
10001000000100001
|
||||
10010001100000110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001100011111101100
|
||||
10001000000100001
|
||||
11001100100111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001100011111101100
|
||||
10001000000100001
|
||||
1000100100011001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001100011111101100
|
||||
10001000000100001
|
||||
100001001100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001100011111101100
|
||||
10001000000100001
|
||||
11001101000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000001100011111101100
|
||||
10001000000100001
|
||||
1000101000110001000000000000000000000000000000000000000000000000000000000000000000000000000000000001100011111101100
|
||||
10001000000100001
|
||||
1000100001100000000000000000000000000000000000000000000000000000000000000000000000000000000001100011111101100
|
||||
10001000000100001
|
||||
1110000100000000000000000000000000000000000000000000000000000000000000000000000000001100011111101100
|
||||
10001000000100001
|
||||
110100100010000100000000000000000000000000000000000000000000000000000000000000000001100011111101100
|
||||
10001000000100001
|
||||
10110100011000110000000000000000000000000000000000000000000000000000000000000000001100011111101100
|
||||
10001000000100001
|
||||
111100011100111000000000000000000000000000000000000000000000000000000000000000001100011111101100
|
||||
10001000000100001
|
||||
11110011101111010000000000000000000000000000000000000000000000000000000000000001100011111101100
|
||||
10001000000100001
|
||||
1111011101011011000000000000000000000000000000000000000000000000000000000000001100011111101100
|
||||
10001000000100001
|
||||
111111101001011100000000000000000000000000000000000000000000000000000000000001100011111101100
|
||||
10001000000100001
|
||||
11101101000011110000000000000000000000000000000000000000000000000000000000001100011111101100
|
||||
10001000000100001
|
||||
1100101000111111000000000000000000000000000000000000000000000000000000000001100011111101100
|
||||
10001000000100001
|
||||
100001000101111100000000000000000000000000000000000000000000000000000000001100011111101100
|
||||
10001000000100001
|
||||
11000100111110000000000000000000000000000000000000000000000000000000001100011111101100
|
||||
10001000000100001
|
||||
1001100111010001000000000000000000000000000000000000000000000000000001100011111101100
|
||||
10001000000100001
|
||||
1000111000001100000000000000000000000000000000000000000000000000001100011111101100
|
||||
10001000000100001
|
||||
11000011100100000000000000000000000000000000000000000000000001100011111101100
|
||||
10001000000100001
|
||||
1001011100000001000000000000000000000000000000000000000000001100011111101100
|
||||
10001000000100001
|
||||
1111100010001100000000000000000000000000000000000000000001100011111101100
|
||||
10001000000100001
|
||||
111000010011100100000000000000000000000000000000000000001100011111101100
|
||||
10001000000100001
|
||||
11010010010100110000000000000000000000000000000000000001100011111101100
|
||||
10001000000100001
|
||||
1011010010000111000000000000000000000000000000000000001100011111101100
|
||||
10001000000100001
|
||||
11110010010111100000000000000000000000000000000000001100011111101100
|
||||
10001000000100001
|
||||
1111010010011101000000000000000000000000000000000001100011111101100
|
||||
10001000000100001
|
||||
111110010001101100000000000000000000000000000000001100011111101100
|
||||
10001000000100001
|
||||
11100010000101110000000000000000000000000000000001100011111101100
|
||||
10001000000100001
|
||||
1101010000001111000000000000000000000000000000001100011111101100
|
||||
10001000000100001
|
||||
101110000011111100000000000000000000000000000001100011111101100
|
||||
10001000000100001
|
||||
1100000010111110000000000000000000000000000001100011111101100
|
||||
10001000000100001
|
||||
100100010101110100000000000000000000000000001100011111101100
|
||||
10001000000100001
|
||||
110010100110110000000000000000000000000001100011111101100
|
||||
10001000000100001
|
||||
10000100111110010000000000000000000000001100011111101100
|
||||
10001000000100001
|
||||
1100111010011000000000000000000000001100011111101100
|
||||
10001000000100001
|
||||
100011010001000100000000000000000001100011111101100
|
||||
10001000000100001
|
||||
1010000000110000000000000000001100011111101100
|
||||
10001000000100001
|
||||
10100000100000100000000000001100011111101100
|
||||
10001000000100001
|
||||
101000100100101000000000001100011111101100
|
||||
10001000000100001
|
||||
1010100101101010000000001100011111101100
|
||||
10001000000100001
|
||||
10000101111010100000001100011111101100
|
||||
10001000000100001
|
||||
1101111110101000001100011111101100
|
||||
10001000000100001
|
||||
101011110111000101100011111101100
|
||||
10001000000100001
|
||||
1001110110000111100011111101100
|
||||
10001000000100001
|
||||
1010110010111000011111101100
|
||||
10001000000100001
|
||||
10010010101000111111101100
|
||||
10001000000100001
|
||||
11010101100110111101100
|
||||
10001000000100001
|
||||
1011101100010110101100
|
||||
10001000000100001
|
||||
11001100000110001100
|
||||
10001000000100001
|
||||
1000100000010000100
|
||||
10001000000100001
|
||||
0
|
||||
|
||||
./crc_polymod --crc 0000000000000000000000000000000000
|
||||
C7EC
|
||||
11111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
10001000000100001
|
||||
1110111111011111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
10001000000100001
|
||||
110011111001111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
10001000000100001
|
||||
10001111000111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
10001000000100001
|
||||
111000011111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
10001000000100001
|
||||
11010011110000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
10001000000100001
|
||||
1011011110100011000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
10001000000100001
|
||||
11111110110011100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
10001000000100001
|
||||
1110110110111101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
10001000000100001
|
||||
110010110101101100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
10001000000100001
|
||||
10000110100101110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
10001000000100001
|
||||
1110100001111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
10001000000100001
|
||||
110000001101000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
10001000000100001
|
||||
10010001100000110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
10001000000100001
|
||||
11001100100111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
10001000000100001
|
||||
1000100100011001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
10001000000100001
|
||||
100001001100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
10001000000100001
|
||||
11001101000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
10001000000100001
|
||||
1000101000110001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
10001000000100001
|
||||
1000100001100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
10001000000100001
|
||||
1110000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
10001000000100001
|
||||
110100100010000100000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
10001000000100001
|
||||
10110100011000110000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
10001000000100001
|
||||
111100011100111000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
10001000000100001
|
||||
11110011101111010000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
10001000000100001
|
||||
1111011101011011000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
10001000000100001
|
||||
111111101001011100000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
10001000000100001
|
||||
11101101000011110000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
10001000000100001
|
||||
1100101000111111000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
10001000000100001
|
||||
100001000101111100000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
10001000000100001
|
||||
11000100111110000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
10001000000100001
|
||||
1001100111010001000000000000000000000000000000000000000000000000000000000000000000000
|
||||
10001000000100001
|
||||
1000111000001100000000000000000000000000000000000000000000000000000000000000000000
|
||||
10001000000100001
|
||||
11000011100100000000000000000000000000000000000000000000000000000000000000000
|
||||
10001000000100001
|
||||
1001011100000001000000000000000000000000000000000000000000000000000000000000
|
||||
10001000000100001
|
||||
1111100010001100000000000000000000000000000000000000000000000000000000000
|
||||
10001000000100001
|
||||
111000010011100100000000000000000000000000000000000000000000000000000000
|
||||
10001000000100001
|
||||
11010010010100110000000000000000000000000000000000000000000000000000000
|
||||
10001000000100001
|
||||
1011010010000111000000000000000000000000000000000000000000000000000000
|
||||
10001000000100001
|
||||
11110010010111100000000000000000000000000000000000000000000000000000
|
||||
10001000000100001
|
||||
1111010010011101000000000000000000000000000000000000000000000000000
|
||||
10001000000100001
|
||||
111110010001101100000000000000000000000000000000000000000000000000
|
||||
10001000000100001
|
||||
11100010000101110000000000000000000000000000000000000000000000000
|
||||
10001000000100001
|
||||
1101010000001111000000000000000000000000000000000000000000000000
|
||||
10001000000100001
|
||||
101110000011111100000000000000000000000000000000000000000000000
|
||||
10001000000100001
|
||||
1100000010111110000000000000000000000000000000000000000000000
|
||||
10001000000100001
|
||||
100100010101110100000000000000000000000000000000000000000000
|
||||
10001000000100001
|
||||
110010100110110000000000000000000000000000000000000000000
|
||||
10001000000100001
|
||||
10000100111110010000000000000000000000000000000000000000
|
||||
10001000000100001
|
||||
1100111010011000000000000000000000000000000000000000
|
||||
10001000000100001
|
||||
100011010001000100000000000000000000000000000000000
|
||||
10001000000100001
|
||||
1010000000110000000000000000000000000000000000
|
||||
10001000000100001
|
||||
10100000100000100000000000000000000000000000
|
||||
10001000000100001
|
||||
101000100100101000000000000000000000000000
|
||||
10001000000100001
|
||||
1010100101101010000000000000000000000000
|
||||
10001000000100001
|
||||
10000101111010100000000000000000000000
|
||||
10001000000100001
|
||||
1101111110101000000000000000000000
|
||||
10001000000100001
|
||||
101011110111000100000000000000000
|
||||
10001000000100001
|
||||
1001110110000110000000000000000
|
||||
10001000000100001
|
||||
1010110010110100000000000000
|
||||
10001000000100001
|
||||
10010010100100100000000000
|
||||
10001000000100001
|
||||
11010100000101000000000
|
||||
10001000000100001
|
||||
1011100000001001000000
|
||||
10001000000100001
|
||||
11000000011001100000
|
||||
10001000000100001
|
||||
1001000011101101000
|
||||
10001000000100001
|
||||
1100011111101100
|
||||
10001000000100001
|
||||
1100011111101100
|
||||
Rest:
|
||||
1100011111101100 = 0xC7EC
|
||||
|
Ładowanie…
Reference in New Issue