7051:+ 1. This is a carefully selected multiple of the CRC-32 polynomial such that the terms (feedback taps) are at least 8 positions apart. Thus, a 123-bit shift register can be advanced 8 bits per iteration using only two-input XOR gates, the fastest possible. Finally the intermediate remainder can be reduced modulo the standard polynomial in a second shift register to yield the CRC-32 remainder.
68:
25:
7151:
This has an effect on one-pass CRC checking: instead of producing a result of zero when the message is correct, it produces a fixed non-zero result. (To be precise, the result is the CRC, with zero preset but with post-invert, of the inversion pattern.) Once this constant has been obtained (e.g. by
7131:
This does not affect CRC generation and checking in any way, as long as both generator and checker use the same initial value. Any non-zero initial value will do, and a few standards specify unusual values, but the all-ones value (−1 in twos complement binary) is by far the most common. Note that a
4351:
Parallel update for a byte or a word at a time can also be done explicitly, without a table. This is normally used in high-speed hardware implementations. For each bit an equation is solved after 8 bits have been shifted in. The following tables list the equations for some commonly used polynomials,
4342:
There is no particular need for the slices to be 8 bits wide. For example, it would be entirely possible to compute a CRC 64 bits at a time using a slice-by-9 algorithm, using 9 128-entry lookup tables to handle 63 bits, and the 64th bit handled by the bit-at-a-time algorithm (which is effectively a
2251:
Observe that after each subtraction, the bits are divided into three groups: at the beginning, a group which is all zero; at the end, a group which is unchanged from the original; and a blue shaded group in the middle which is "interesting". The "interesting" group is 8 bits long, matching the degree
7111:
The basic mathematics of a CRC accepts (considers as correctly transmitted) messages which, when interpreted as a polynomial, are a multiple of the CRC polynomial. If some leading 0 bits are prepended to such a message, they will not change its interpretation as a polynomial. This is equivalent to
4255:
So the large table is not stored explicitly, but each iteration computes the CRC value that would be there by combining the values in two smaller tables. That is, the 16-bit index is "sliced" into two 8-bit indexes. At first glance, this seems pointless; why do two lookups in separate tables, when
251:
Checking received data with checksum. The received message is shifted through the same register as used in the generator, but the received checksum is attached to it instead of zeroes. Correct data yields the all-zeroes result; a corrupted bit in either the message or checksum would give a different
3314:
and writing explicit conversions from binary to polynomial form. In practice, the CRC is held in a standard binary register using a particular bit-ordering convention. In msbit-first form, the most significant binary bits will be sent first and so contain the higher-order polynomial coefficients,
3709:
The software to generate the tables is so small and fast that it is usually faster to compute them on program startup than to load precomputed tables from storage. One popular technique is to use the bit-at-a-time code 256 times to generate the CRCs of the 256 possible 8-bit bytes. However, this
4281:
the CRC size, there is a minor speedup. In the part of the basic
Sarwate algorithm where the previous CRC value is shifted by the size of the table lookup, the previous CRC value is shifted away entirely (what remains is all zero), so the XOR can be eliminated from the critical path.
4315:
This still has the property that all of the loads in the second step must be completed before the next iteration can commence, resulting in regular pauses during which the processor's memory subsystem (in particular, the data cache) is unused. However, when the slicing width
7011:
As the CRC-32 polynomial has a large number of terms, when computing the remainder a byte at a time each bit depends on up to 8 bits of the previous iteration. In byte-parallel hardware implementations this calls for either 8-input or cascaded XOR gates which increases
3693:
Using a 256-entry table is usually most convenient, but other sizes can be used. In small microcontrollers, using a 16-entry table to process four bits at a time gives a useful speed improvement while keeping the table small. On computers with ample storage, a
4270:
When sliced tables are used, both lookups can begin at the same time. If the processor can perform two loads in parallel (2020s microprocessors can keep track of over 100 loads in progress), then this has the potential to double the speed of the inner loop.
7115:
But if the message being transmitted does care about leading 0 bits, the inability of the basic CRC algorithm to detect such a change is undesirable. If it is possible that a transmission error could add such bits, a simple solution is to start with the
7102:
In practice, most standards specify presetting the register to all-ones and inverting the CRC before transmission. This has no effect on the ability of a CRC to detect changed bits, but gives it the ability to notice bits that are added to the message.
7147:
A similar solution can be applied at the end of the message, inverting the CRC register before it is appended to the message. Again, any non-zero change will do; inverting all the bits (XORing with an all-ones pattern) is simply the most common.
3689:
includes an appendix with a short and simple table-driven implementation in C of CRC-32. You will note that the code corresponds to the lsbit-first byte-at-a-time pseudocode presented here, and the table is generated using the bit-at-a-time code.
3256:) standards specify least-significant bit first (little-endian) transmission, so a software CRC implementation to protect data sent across such a link should map the least significant bits in each byte to coefficients of the highest powers of
7094:. (This requires multiple frames to detect acquisition or loss of framing, so is limited to applications where the frames are a known length, and the frame contents are sufficiently random that valid CRCs in misaligned data are rare.)
2847:
This is the standard bit-at-a-time hardware CRC implementation, and is well worthy of study; once you understand why this computes exactly the same result as the first version, the remaining optimizations are quite straightforward. If
4231:
To understand the advantages, start with the slice-by-2 case. We wish to compute a CRC 2 bytes (16 bits) at a time, but the standard table-based approach would require an inconveniently large 65536-entry table. As mentioned in
7071:
When appending a CRC to a message, it is possible to detach the transmitted CRC, recompute it, and verify the recomputed value against the transmitted one. However, a simpler technique is commonly used in hardware.
2252:
of the polynomial. Every step, the appropriate multiple of the polynomial is subtracted to make the zero group one bit longer, and the unchanged group becomes one bit shorter, until only the final remainder is left.
7062:
Block-wise computation of the remainder can be performed in hardware for any CRC polynomial by factorizing the State Space transformation matrix needed to compute the remainder into two simpler
Toeplitz matrices.
7678:
The fact that the CRC of a message followed by its CRC is a constant value which does not depend on the message... is well known and has been widely used in the telecommunication industry for long time.
3315:
while in lsbit-first form, the least-significant binary bits contain the higher-order coefficients. The above pseudocode can be written in both forms. For concreteness, this uses the 16-bit CRC-16-
3287:
The lsbit-first CRC is slightly simpler to implement in software, so is somewhat more commonly seen, but many programmers find the msbit-first bit ordering easier to follow. Thus, for example, the
7144:, and if it was previously a multiple of the CRC polynomial, the result of that multiplication will be, as well. This is equivalent to the fact that, since 726 is a multiple of 11, so is 7260.
4217:(typically slice-by-8 for CRC32) algorithm that usually doubles or triples the performance compared to the Sarwate algorithm. Instead of reading 8 bits at a time, the algorithm reads 8
542:
4343:
1-bit, 2-entry lookup table). This would almost halve the table size (going from 8×256 = 2048 entries to 9×128 = 1152) at the expense of one more data-dependent load per iteration.
7140:
The same sort of error can occur at the end of a message, albeit with a more limited set of messages. Appending 0 bits to a message is equivalent to multiplying its polynomial by
4267:. In the standard algorithm, the index for each lookup depends on the value fetched in the previous one. Thus, the second lookup cannot begin until the first lookup is complete.
3376:
470:
243:
in the generator polynomial. The message stream may be any length. After it has been shifted through the register, followed by 8 zeroes, the result in the register is the checksum.
4327:
on any previous iteration. When XORing a 32-bit CRC with 64 bits of message, half of the result is simply a copy of the message. If coded carefully (to avoid creating a false
7152:
performing a one-pass CRC generate/check on an arbitrary message), it can be used directly to verify the correctness of any other message checked using the same CRC algorithm.
2360:
349:
256:
Various CRC standards extend the polynomial division algorithm by specifying an initial shift register value, a final
Exclusive-Or step and, most critically, a bit ordering (
7120:
shift register set to some non-zero value; for convenience, the all-ones value is typically used. This is mathematically equivalent to complementing (binary NOT) the first
2299:
3177:, it is necessary to specify the bit ordering (endianness) of the data; which bit in each byte is considered "first" and will be the coefficient of the higher power of
608:
3237:; if adjacent polynomial terms are not transmitted sequentially, a physical error burst of one length may be seen as a longer burst due to the rearrangement of bits.
3121:
2686:
3148:
2881:
2642:
2604:
569:
3235:
3088:
640:
405:
3312:
3274:
3195:
3059:
3039:
2710:
2573:
2420:
2396:
369:
7075:
When the CRC is transmitted with the correct byte order (matching the chosen bit-ordering convention), a receiver can compute an overall CRC, over the message
7469:
7389:
144:
3613:
to process more than one bit of dividend per iteration. Most commonly, a 256-entry lookup table is used, replacing the body of the outer loop (over
2422:
is equivalent to shifting the register by one place, as the coefficients do not change in value but only move up to the next term of the polynomial.
116:
7574:
275:
As an example of implementing polynomial division in hardware, suppose that we are trying to compute an 8-bit CRC of an 8-bit message made of the
269:
181:
7079:
the CRC, and if they are correct, the result will be zero. This possibility is the reason that most network protocols which include a CRC do so
642:. This is just like decimal long division, but even simpler because the only possible multiples at each step are 0 and 1, and the subtractions
4339:
busy, which achieves maximum performance. As mentioned, on post-2000 microprocessors, slice-by-8 is generally sufficient to reach this level.
123:
3021:, the generator polynomial uniquely describes the bit assignment; the first bit transmitted is always the coefficient of the highest power of
378:
can be transmitted in two different orders, depending on the bit ordering convention used. Each one generates a different message polynomial
92:
of the topic and provide significant coverage of it beyond a mere trivial mention. If notability cannot be shown, the article is likely to be
7237:
3294:
So far, the pseudocode has avoided specifying the ordering of bits within bytes by describing shifts in the pseudocode as multiplications by
2887:
are simply discarded. This is the reason that you will usually see CRC polynomials written in binary with the leading coefficient omitted.
35:
2719:
iterations differently, but there is a more subtle optimization which is used universally, in both hardware and software implementations.
130:
7777:
7569:
7410:
7366:
3170:
163:
112:
7434:
Berry, Frank L.; Kounavis, Michael E. (November 2008). "Novel Table Lookup-Based
Algorithms for High-Performance CRC Generation".
224:
7265:
646:"from infinity" instead of reducing the upper digits. Because we do not care about the quotient, there is no need to record it.
260:). As a result, the code seen in practice deviates confusingly from "pure" division, and the register may shift left or right.
248:
89:
7132:
one-pass CRC generate/check will still produce a result of zero when the message is correct, regardless of the preset value.
2444:
232:
2378:
Writing out the full message at each step, as done in the example above, is very tedious. Efficient implementations use an
3592:. In either case, be sure to transmit the bytes of the CRC in the order that matches your chosen bit-ordering convention.
7054:
If 3- or 4-input XOR gates are permitted, shorter intermediate polynomials of degree 71 or 53, respectively, can be used.
4264:
85:
7388:
Kounavis, M.E.; Berry, F.L. (2005). "A Systematic
Approach to Building High Performance Software-Based CRC Generators".
7334:"Portable Network Graphics (PNG) Specification (Second Edition): Annex D, Sample Cyclic Redundancy Code implementation"
2894:
of each bit until the very last moment, it is also possible to do it earlier. It is usually convenient to perform the
101:
3204:, it is best to use the bit ordering the data will ultimately be sent in. This is because a CRC's ability to detect
137:
7174:
7482:
7684:
7296:
3686:
3679:
2451:
7690:
4335:
the previous loop iteration has completed. The result is enough work to keep the processor's memory subsystem
2547:
Note that this example code avoids the need to specify a bit-ordering convention by not using bytes; the input
475:
7533:
7083:
the ending delimiter; it is not necessary to know whether the end of the packet is imminent to check the CRC.
217:
3685:. Its polynomial can be written msbit-first as 0x04C11DB7, or lsbit-first as 0xEDB88320. The W3C webpage on
7708:
TMS37157 data sheet - Passive Low
Frequency Interface Device With EEPROM and 134.2 kHz Transponder Interface
7622:"Block-wise computation of Cyclic Redundancy Code using factored Toeplitz matrices in lieu of Look-Up Table"
3015:
228:
213:
177:
3322:
410:
78:
7782:
7197:
7169:
196:
operations replace subtractions. Division of this type is efficiently realised in hardware by a modified
192:
message string, with a fixed number of zeroes appended, by the "generator polynomial" string except that
7754:
7164:
4535:
3158:
2312:
97:
4525:
3201:
302:
93:
7549:
7545:
3018:
2258:
7668:
7649:
7451:
7416:
7315:
7243:
2434:
643:
2965:
of remainderPolynomial = 1 { remainderPolynomial := (remainderPolynomial *
574:
7715:
7641:
7406:
7233:
7091:
7013:
4274:
This technique can obviously be extended to as many slices as the processor can benefit from.
3671:
296:
3093:
2810:
of remainderPolynomial) = 1 { remainderPolynomial := (remainderPolynomial *
2658:
7633:
7591:
7537:
7443:
7398:
7305:
7225:
3978:
nLookupIndex ← (crc32 xor byte) and 0xFF crc32 ← (crc32 shr 8) xor CRCTable
3003:
204:, starting with simple code close to the mathematics and becoming faster (and arguably more
7541:
7217:
3126:
2859:
2620:
2582:
613:
Computing the remainder then consists of subtracting multiples of the generator polynomial
547:
4328:
3675:
3211:
3162:
3064:
616:
381:
205:
7599:
7358:
2522:
of remainderPolynomial = 1 { remainderPolynomial := remainderPolynomial
5204:
Bit-wise update equations for some CRC-16 polynomials after 8 bits have been shifted in
2722:
Because the XOR operation used to subtract the generator polynomial from the message is
4475:
Bit-wise update equations for some CRC-8 polynomials after 8 bits have been shifted in
3718:. Only the table entries corresponding to powers of two need to be computed directly.
3297:
3259:
3180:
3044:
3024:
2695:
2558:
2405:
2399:
2381:
354:
197:
7771:
7653:
7499:
7455:
7269:
2301:. Converting to a hexadecimal number using the convention that the highest power of
185:
7420:
7247:
7319:
3682:
3606:
2461:
193:
7706:
4244:. We can use this identity to replace the large table by two 256-entry tables:
4222:
3915:
3277:
3253:
3205:
2727:
2723:
288:
189:
7621:
3914:
This is a practical algorithm for the CRC-32 variant of CRC. The CRCTable is a
7583:
3918:
of a calculation that would have to be repeated for each byte of the message (
3281:
2426:
351:. Writing the first bit transmitted (the coefficient of the highest power of
257:
7727:
The CRC Generator is initialized with the value 0x3791 as shown in Figure 50.
7645:
7518:
7743:
7637:
2730:, it does not matter in what order the various inputs are combined into the
2362:. Converting to hexadecimal using the convention that the highest power of
201:
7744:"64 Bit Cyclic Redundant Code – XOR Long Division To Bytewise Table Lookup"
7333:
3291:-CRC extension, an early use of CRCs in software, uses an msbit-first CRC.
7570:"A two-step computation of cyclic redundancy code CRC-32 for ATM networks"
7229:
7402:
7192:
3663:
3245:
3241:
3174:
236:
7595:
7310:
7291:
3710:
can be optimized significantly by taking advantage of the property that
2555:
is manipulated in terms of polynomial operations; the multiplication by
7447:
7218:"A BDD-Based Approach to Constructing LFSRS for Parallel CRC Encoding"
2742:
until the very last instant when it is tested to determine whether to
7759:
3288:
3249:
3166:
2977:{ remainderPolynomial := (remainderPolynomial *
3920:
Computation of cyclic redundancy checks § Multi-bit computation
223:
7023:
can be calculated by first computing the CRC of the message modulo
2890:
In software, it is convenient to note that while one may delay the
2606:
coefficient, which could be the right or left end of the register.
247:
7478:
4256:
the standard byte-at-a-time algorithm would do two lookups in the
3316:
3002:
This is usually the most compact software implementation, used in
2402:
to hold only the interesting bits. Multiplying the polynomial by
276:
222:
2997:
Code fragment 3: Polynomial division with bytewise message XORing
2842:
Code fragment 2: Polynomial division with deferred message XORing
2822:{ remainderPolynomial := (remainderPolynomial *
2609:
This code has two disadvantages. First, it actually requires an
371:) on the left, this corresponds to the 9-bit string "100000111".
84:
Please help to demonstrate the notability of the topic by citing
7471:
High Octane CRC Generation with the Intel
Slicing-by-8 Algorithm
3667:
3658:
One of the most commonly encountered CRC algorithms is known as
3154:
2899:
2504:
len { remainderPolynomial := remainderPolynomial *
209:
7222:
3889:
Code fragment 8: Byte-at-a-time CRC table generation, LSB first
3808:
Code fragment 7: Byte-at-a-time CRC table generation, MSB first
2983:// A popular variant complements remainderPolynomial here; see
2918:// A popular variant complements remainderPolynomial here; see
2828:// A popular variant complements remainderPolynomial here; see
2777:// A popular variant complements remainderPolynomial here; see
2644:
coefficient can be tested. More significantly, it requires the
2528:// A popular variant complements remainderPolynomial here; see
2487:// A popular variant complements remainderPolynomial here; see
7587:
7337:
2935:
len { remainderPolynomial := remainderPolynomial
2794:
len { remainderPolynomial := remainderPolynomial
2464:
the coefficients of each matching term from both polynomials.
61:
18:
7391:
10th IEEE Symposium on
Computers and Communications (ISCC'05)
3471:
0xffff // Trim remainder to 16 bits } }
2902:
at a time, even in a bit-at-a-time implementation like this:
7292:"Computation of Cyclic Redundancy Checks via Table Look-Up"
4323:
This is because a portion of the results of the first step
3813:
little_endian_table := 0 crc := 1; i := 128
7266:"A Painless Guide to CRC Error Detection Algorithms V3.00"
3579:
Code fragment 5: Shift register based division, LSB first
3483:
Code fragment 4: Shift register based division, MSB first
3584:
Note that the lsbit-first form avoids the need to shift
2460:
two polynomials is to add them, modulo two; that is, to
2255:
In the msbit-first example, the remainder polynomial is
268:
For a discussion of polynomial division modulo two, see
3701:-entry table can be used to process 16 bits at a time.
42:
16:
Overview of the computation of cyclic redundancy checks
7755:"Efficient (~1 CPU cycle per byte) CRC implementation"
4179:// Finalize the CRC-32 value by inverting all the bits
3987:// Finalize the CRC-32 value by inverting all the bits
7216:
Dubrova, Elena; Mansouri, Shohreh Sharif (May 2012).
3872:
2 × i { little_endian_table := crc
3325:
3300:
3262:
3214:
3183:
3129:
3096:
3067:
3047:
3027:
2862:
2715:
The second problem could be solved by doing the last
2698:
2661:
2623:
2585:
2561:
2454:
that can be added, multiplied and exponentiated. To
2408:
2384:
2315:
2261:
619:
577:
550:
478:
413:
384:
357:
305:
4320:
the CRC size, a significant second speedup appears.
2575:
could be a left or right shift, and the addition of
4228:It is unclear who actually invented the algorithm.
3284:write the most significant bit of each byte first.
7667:Kadatch, Andrew; Jenkins, Bob (3 September 2010).
4221:bits at a time. Doing so maximizes performance on
3370:
3306:
3268:
3229:
3189:
3142:
3115:
3082:
3053:
3033:
2875:
2704:
2680:
2636:
2598:
2567:
2414:
2390:
2354:
2293:
634:
602:
563:
536:
464:
399:
363:
343:
7670:Everything we know about CRC but afraid to forget
3906:; you may use whichever form is more convenient.
3732:big_endian_table := 0 crc := 0x8000 //
7519:"Who invented the slicing-by-N CRC32 algorithm?"
4300:look up each byte of the resultant value in the
3208:is based on proximity in the message polynomial
295:. For illustration, we will use the CRC-8-ATM (
4173:// CRCTable is an array of 256 32-bit constants
3981:// CRCTable is an array of 256 32-bit constants
3492:// 1+x+x+(x) = 1000 0100 0000 1000 (1) = 0x8408
3385:// (x)+x+x+1 = (1) 0001 0000 0010 0001 = 0x1021
2655:The first problem can be solved by testing the
2551:is already in the form of a bit array, and the
7112:the fact that 0001 and 1 are the same number.
3653:Code fragment 6: Cores of table based division
3489:// Least significant bit first (little-endian)
239:placed according to powers (white numbers) of
7177:is equivalent to a 1-bit CRC with polynomial
3467:1 } rem := rem
2916:len) { remainderPolynomial := 0
2775:len) { remainderPolynomial := 0
544:= 11101010. These can then be multiplied by
8:
7259:
7257:
3855:iterate over the already-initialized entries
3778:iterate over the already-initialized entries
200:, and in software by a series of equivalent
7128:is the number of bits in the CRC register.
4331:), half of the slice table loads can begin
3876:little_endian_table; } i := i
3791:i−1 { big_endian_table := crc
2542:Code fragment 1: Simple polynomial division
252:result, warning that an error has occurred.
7090:the message delimiter, a technique called
4233:
3919:
3382:// Most significant bit first (big-endian)
571:to produce two 16-bit message polynomials
7309:
3609:indexed by highest order coefficients of
3569:// A popular variant complements rem here
3507:// A popular variant complements rem here
3473:// A popular variant complements rem here
3400:// A popular variant complements rem here
3356:
3343:
3330:
3324:
3299:
3261:
3213:
3182:
3134:
3128:
3101:
3095:
3066:
3046:
3026:
2867:
2861:
2697:
2666:
2660:
2628:
2622:
2590:
2584:
2560:
2407:
2383:
2346:
2333:
2320:
2314:
2279:
2266:
2260:
618:
582:
576:
555:
549:
537:{\displaystyle x^{7}+x^{6}+x^{5}+x^{3}+x}
522:
509:
496:
483:
477:
444:
431:
418:
412:
383:
356:
323:
310:
304:
164:Learn how and when to remove this message
113:"Computation of cyclic redundancy checks"
7359:"[MS-ABS]: 32-Bit CRC Algorithm"
6063:
5202:
4473:
4354:
3795:big_endian_table; } i := i
2753:This eliminates the need to preload the
2734:. And specifically, a given bit of the
2526:generatorPolynomial } }
2309:. In the lsbit-first, the remainder is
246:
7575:IBM Journal of Research and Development
7208:
3894:In these code samples, the table index
3601:Sarwate algorithm (single lookup table)
3061:bits transmitted are the CRC remainder
3006:when space is at a premium over speed.
2478:len) { remainderPolynomial :=
279:character "W", which is binary 01010111
270:Mathematics of cyclic redundancy checks
7682:
3956:// Initialize CRC-32 to starting value
7086:In fact, a few protocols use the CRC
3371:{\displaystyle x^{16}+x^{12}+x^{5}+1}
472:= 01010111, while lsbit-first, it is
465:{\displaystyle x^{6}+x^{4}+x^{2}+x+1}
7:
7369:from the original on 7 November 2017
4364:CRC bit 7…0 (or 15…0) before update
4236:, CRC tables have the property that
3567:1 } } }
2981:) } } }
7500:"Brief tutorial on CRC computation"
4375:CRC bit 7…0 (or 15…0) after update
4000:In C, the algorithm looks as such:
3990:crc32 ← crc32 xor 0xFFFFFFFF
3605:Another common optimization uses a
3563:{ rem := rem
3463:{ rem := rem
3153:However, when bits are processed a
3123:and ending with the coefficient of
3090:, starting with the coefficient of
180:is derived from the mathematics of
7019:To maximise computation speed, an
4347:Parallel computation without table
4293:XOR the current CRC with the next
4209:Byte-Slicing using multiple tables
3748:0x8000 { crc := (crc
3636:(n-8))] // Lsbit-first rem = (rem
2973:generatorPolynomial }
2513:// Define bitString=0 for k>len
2443:is not an integer variable, but a
14:
7517:Menon-Sen, Abhijit (2017-01-20).
7290:Sarwate, Dilip V. (August 1998).
3171:asynchronous serial communication
2919:
2778:
2738:does not need to be added to the
2488:
2355:{\displaystyle x^{7}+x^{4}+x^{3}}
231:. The generator is a Galois-type
45:and remove advice or instruction.
7264:Williams, Ross N. (1996-09-24).
3173:, or when implementing a CRC in
2984:
2829:
2529:
66:
23:
7676:(Technical report). p. 4.
3950:// 32-bit unsigned CRC-32 value
3721:In the following example code,
3520:len { rem := rem
3413:len { rem := rem
3150:, a.k.a. the coefficient of 1.
2433:-bit CRC. It uses a contrived
344:{\displaystyle x^{8}+x^{2}+x+1}
227:Example of generating an 8-bit
182:polynomial division, modulo two
77:may not meet Knowledge (XXG)'s
7626:IEEE Transactions on Computers
7568:Glaise, René J. (1997-01-20).
7436:IEEE Transactions on Computers
3505:len) { rem := 0
3224:
3218:
3157:at a time, such as when using
3077:
3071:
2818:generatorPolynomial }
2761:bits of the message, as well:
2484:// First n bits of the message
2425:Here is a first draft of some
629:
623:
597:
591:
394:
388:
1:
7753:Andrew Kadarch, Bob Jenkins.
4265:instruction-level parallelism
3825:1 { crc := (crc
3398:len) { rem := 0
2294:{\displaystyle x^{7}+x^{5}+x}
7695:A good source for even more
4311:results to get the next CRC.
4234:§ Generating the tables
3734:Assuming a 16-bit polynomial
3200:If the data is destined for
2613:+1-bit register to hold the
655:Least-significant bit first
184:. In practice, it resembles
79:general notability guideline
7718:, November 2009, p. 39
7124:bits of the message, where
3648:(rightmost 8 bits of rem)]
3538:// Assuming 8 bits per byte
3438:// Assuming 8 bits per byte
2956:// Assuming 8 bits per byte
2692:before it is multiplied by
1454:
648:
7799:
6459:
5727:
4881:
4496:(left-shifted CRC-7-CCITT)
3841:{ crc := crc
3764:{ crc := crc
3632:((leftmost 8 bits of rem)
3620:// Msbit-first rem = (rem
2883:coefficients of it and of
652:Most-significant bit first
267:
86:reliable secondary sources
75:The topic of this article
7532:Jon Buller (1996-03-15).
7504:The Linux Kernel Archives
7297:Communications of the ACM
6069:
5211:
4522:0x12 = (0x09 << 1)
4352:using following symbols:
3662:, used by (among others)
3423:// n = 16 in this example
3010:Bit ordering (endianness)
603:{\displaystyle x^{8}M(x)}
7778:Cyclic redundancy checks
7704:E.g. low-frequency RFID
7534:"Re: 8051 and CRC-CCITT"
6733:
6466:
5896:
5734:
5032:
4888:
4289:inner loop consists of:
4213:There exists a slice-by-
4002:
3959:crc32 ← 0xFFFFFFFF
2366:is the lsbit, this is 19
2305:is the msbit; this is A2
407:. Msbit-first, this is
7638:10.1109/TC.2022.3189574
4285:The resultant slice-by-
4277:When the slicing width
3116:{\displaystyle x^{n-1}}
2681:{\displaystyle x^{n-1}}
2437:for polynomials, where
178:cyclic redundancy check
7170:List of hash functions
7058:Block-wise computation
7021:intermediate remainder
3372:
3308:
3276:. On the other hand,
3270:
3231:
3191:
3144:
3117:
3084:
3055:
3035:
2992:remainderPolynomial }
2877:
2837:remainderPolynomial }
2826:) } }
2706:
2682:
2638:
2600:
2569:
2537:remainderPolynomial }
2416:
2392:
2356:
2295:
636:
604:
565:
538:
466:
401:
365:
345:
253:
244:
7620:Das, Arindam (2022).
7230:10.1109/ISMVL.2012.20
7165:Error correction code
4297:bytes of the message,
3705:Generating the tables
3596:Multi-bit computation
3559:0x8408 }
3549:// Test x coefficient
3459:0x1021 }
3449:// Test x coefficient
3373:
3309:
3271:
3232:
3192:
3161:, byte framing as in
3159:parallel transmission
3145:
3143:{\displaystyle x^{0}}
3118:
3085:
3056:
3036:
2942:(string) * x
2878:
2876:{\displaystyle x^{n}}
2707:
2683:
2639:
2637:{\displaystyle x^{n}}
2601:
2599:{\displaystyle x^{0}}
2570:
2417:
2393:
2357:
2296:
637:
605:
566:
564:{\displaystyle x^{8}}
539:
467:
402:
366:
346:
250:
226:
7742:JohnPaul Adamovsky.
7689:: CS1 maint: year (
7477:(Technical report).
7403:10.1109/ISCC.2005.18
7397:. pp. 855–862.
7224:. pp. 128–133.
7007:Two-step computation
4513:(CRC-8-Dallas/Maxim)
4011:// uint32_t, uint8_t
3644:little_endian_table
3323:
3298:
3260:
3230:{\displaystyle M(x)}
3212:
3202:serial communication
3181:
3127:
3094:
3083:{\displaystyle R(x)}
3065:
3045:
3025:
3014:When implemented in
2860:
2856:bits long, then the
2696:
2659:
2621:
2583:
2559:
2406:
2382:
2313:
2259:
635:{\displaystyle G(x)}
617:
575:
548:
476:
411:
400:{\displaystyle M(x)}
382:
355:
303:
218:space–time tradeoffs
43:rewrite this article
7596:10.1147/rd.416.0705
7311:10.1145/63030.63037
7198:Fletcher's checksum
5205:
4476:
4386:input data bit 7…0
3849:little_endian_table
3845:1 } // crc
3768:1 } // crc
3725:holds the value of
2920:§ Preset to −1
2885:generatorPolynomial
2850:remainderPolynomial
2779:§ Preset to −1
2755:remainderPolynomial
2748:generatorPolynomial
2740:remainderPolynomial
2732:remainderPolynomial
2690:remainderPolynomial
2688:coefficient of the
2615:remainderPolynomial
2553:remainderPolynomial
2489:§ Preset to −1
2435:composite data type
7542:comp.arch.embedded
7448:10.1109/TC.2008.85
7363:msdn.microsoft.com
7188:Non-CRC checksums
5203:
4474:
4304:slice tables, then
4263:The difference is
4246:table = table_low
4008:<inttypes.h>
3835:The CRC polynomial
3758:The CRC polynomial
3551:rem := (rem
3451:rem := (rem
3368:
3304:
3266:
3240:For example, both
3227:
3187:
3140:
3113:
3080:
3051:
3031:
2985:§ Post-invert
2873:
2830:§ Post-invert
2702:
2678:
2648:to be padded with
2634:
2596:
2565:
2530:§ Post-invert
2412:
2388:
2352:
2291:
632:
600:
561:
534:
462:
397:
361:
341:
254:
245:
81:
7716:Texas Instruments
7442:(11): 1550–1560.
7239:978-0-7695-4673-5
7160:General category
7092:CRC-based framing
7067:One-pass checking
7014:propagation delay
7004:
7003:
6062:
6061:
5201:
5200:
4472:
4471:
3947:crc32: UInt32
3939:// Array of bytes
3936:data: Bytes
3898:is equivalent to
3628:big_endian_table
3307:{\displaystyle x}
3269:{\displaystyle x}
3190:{\displaystyle x}
3054:{\displaystyle n}
3034:{\displaystyle x}
2705:{\displaystyle x}
2568:{\displaystyle x}
2429:for computing an
2415:{\displaystyle x}
2391:{\displaystyle n}
2249:
2248:
2245:
2244:
1451:
1450:
374:The byte value 57
364:{\displaystyle x}
176:Computation of a
174:
173:
166:
148:
76:
60:
59:
36:a manual or guide
7790:
7764:
7747:
7730:
7729:
7724:
7723:
7713:
7702:
7696:
7694:
7688:
7685:cite tech report
7680:
7675:
7664:
7658:
7657:
7632:(4): 1110–1121.
7617:
7611:
7610:
7608:
7607:
7598:. Archived from
7565:
7559:
7558:
7556:
7555:
7529:
7523:
7522:
7514:
7508:
7507:
7496:
7490:
7489:
7487:
7481:. Archived from
7476:
7466:
7460:
7459:
7431:
7425:
7424:
7396:
7385:
7379:
7378:
7376:
7374:
7355:
7349:
7348:
7346:
7345:
7330:
7324:
7323:
7313:
7304:(8): 1008–1013.
7287:
7281:
7280:
7278:
7277:
7268:. Archived from
7261:
7252:
7251:
7213:
7183:
7119:
6998:
6995:
6992:
6989:
6986:
6983:
6980:
6977:
6974:
6971:
6968:
6965:
6962:
6959:
6956:
6953:
6950:
6947:
6944:
6941:
6938:
6935:
6932:
6929:
6926:
6923:
6920:
6917:
6914:
6911:
6908:
6905:
6902:
6899:
6896:
6893:
6890:
6887:
6884:
6881:
6878:
6875:
6872:
6869:
6866:
6863:
6860:
6857:
6854:
6851:
6848:
6845:
6842:
6839:
6836:
6833:
6830:
6827:
6824:
6821:
6818:
6815:
6812:
6809:
6806:
6803:
6800:
6797:
6794:
6791:
6788:
6785:
6782:
6779:
6776:
6773:
6770:
6767:
6764:
6761:
6758:
6755:
6752:
6749:
6746:
6743:
6740:
6737:
6728:
6725:
6722:
6719:
6716:
6713:
6710:
6707:
6704:
6701:
6698:
6695:
6692:
6689:
6686:
6683:
6680:
6677:
6674:
6671:
6668:
6665:
6662:
6659:
6656:
6653:
6650:
6647:
6644:
6641:
6638:
6635:
6632:
6629:
6626:
6623:
6620:
6617:
6614:
6611:
6608:
6605:
6602:
6599:
6596:
6593:
6590:
6587:
6584:
6581:
6578:
6575:
6572:
6569:
6566:
6563:
6560:
6557:
6554:
6551:
6548:
6545:
6542:
6539:
6536:
6533:
6530:
6527:
6524:
6521:
6518:
6515:
6512:
6509:
6506:
6503:
6500:
6497:
6494:
6491:
6488:
6485:
6482:
6479:
6476:
6473:
6470:
6064:
6056:
6053:
6050:
6047:
6044:
6041:
6038:
6035:
6032:
6029:
6026:
6023:
6020:
6017:
6014:
6011:
6008:
6005:
6002:
5999:
5996:
5993:
5990:
5987:
5984:
5981:
5978:
5975:
5972:
5969:
5966:
5963:
5960:
5957:
5954:
5951:
5948:
5945:
5942:
5939:
5936:
5933:
5930:
5927:
5924:
5921:
5918:
5915:
5912:
5909:
5906:
5903:
5900:
5891:
5888:
5885:
5882:
5879:
5876:
5873:
5870:
5867:
5864:
5861:
5858:
5855:
5852:
5849:
5846:
5843:
5840:
5837:
5834:
5831:
5828:
5825:
5822:
5819:
5816:
5813:
5810:
5807:
5804:
5801:
5798:
5795:
5792:
5789:
5786:
5783:
5780:
5777:
5774:
5771:
5768:
5765:
5762:
5759:
5756:
5753:
5750:
5747:
5744:
5741:
5738:
5206:
5195:
5192:
5189:
5186:
5183:
5180:
5177:
5174:
5171:
5168:
5165:
5162:
5159:
5156:
5153:
5150:
5147:
5144:
5141:
5138:
5135:
5132:
5129:
5126:
5123:
5120:
5117:
5114:
5111:
5108:
5105:
5102:
5099:
5096:
5093:
5090:
5087:
5084:
5081:
5078:
5075:
5072:
5069:
5066:
5063:
5060:
5057:
5054:
5051:
5048:
5045:
5042:
5039:
5036:
5027:
5024:
5021:
5018:
5015:
5012:
5009:
5006:
5003:
5000:
4997:
4994:
4991:
4988:
4985:
4982:
4979:
4976:
4973:
4970:
4967:
4964:
4961:
4958:
4955:
4952:
4949:
4946:
4943:
4940:
4937:
4934:
4931:
4928:
4925:
4922:
4919:
4916:
4913:
4910:
4907:
4904:
4901:
4898:
4895:
4892:
4477:
4355:
4325:no longer depend
4251:
4243:
4204:
4201:
4198:
4195:
4192:
4189:
4186:
4183:
4180:
4177:
4174:
4171:
4168:
4165:
4162:
4159:
4156:
4153:
4150:
4147:
4144:
4141:
4138:
4135:
4132:
4129:
4126:
4123:
4120:
4117:
4114:
4111:
4108:
4105:
4102:
4099:
4096:
4093:
4090:
4087:
4084:
4081:
4078:
4075:
4072:
4069:
4066:
4063:
4060:
4057:
4054:
4051:
4048:
4045:
4042:
4039:
4036:
4033:
4030:
4027:
4024:
4021:
4018:
4015:
4012:
4009:
4006:
3995:
3989:
3983:
3977:
3971:
3965:
3958:
3952:
3946:
3941:
3935:
3929:
3910:CRC-32 algorithm
3905:
3897:
3772:big_endian_table
3728:
3724:
3717:
3700:
3699:
3616:
3612:
3591:
3587:
3377:
3375:
3374:
3369:
3361:
3360:
3348:
3347:
3335:
3334:
3313:
3311:
3310:
3305:
3275:
3273:
3272:
3267:
3236:
3234:
3233:
3228:
3196:
3194:
3193:
3188:
3149:
3147:
3146:
3141:
3139:
3138:
3122:
3120:
3119:
3114:
3112:
3111:
3089:
3087:
3086:
3081:
3060:
3058:
3057:
3052:
3040:
3038:
3037:
3032:
3004:microcontrollers
2897:
2893:
2886:
2882:
2880:
2879:
2874:
2872:
2871:
2851:
2806:(coefficient of
2756:
2749:
2745:
2741:
2737:
2733:
2711:
2709:
2708:
2703:
2691:
2687:
2685:
2684:
2679:
2677:
2676:
2647:
2643:
2641:
2640:
2635:
2633:
2632:
2616:
2605:
2603:
2602:
2597:
2595:
2594:
2578:
2574:
2572:
2571:
2566:
2554:
2550:
2459:
2442:
2421:
2419:
2418:
2413:
2397:
2395:
2394:
2389:
2361:
2359:
2358:
2353:
2351:
2350:
2338:
2337:
2325:
2324:
2300:
2298:
2297:
2292:
2284:
2283:
2271:
2270:
1455:
661:
660:
649:
641:
639:
638:
633:
609:
607:
606:
601:
587:
586:
570:
568:
567:
562:
560:
559:
543:
541:
540:
535:
527:
526:
514:
513:
501:
500:
488:
487:
471:
469:
468:
463:
449:
448:
436:
435:
423:
422:
406:
404:
403:
398:
370:
368:
367:
362:
350:
348:
347:
342:
328:
327:
315:
314:
169:
162:
158:
155:
149:
147:
106:
70:
69:
62:
55:
52:
46:
34:is written like
27:
26:
19:
7798:
7797:
7793:
7792:
7791:
7789:
7788:
7787:
7768:
7767:
7752:
7741:
7738:
7733:
7721:
7719:
7711:
7705:
7703:
7699:
7681:
7673:
7666:
7665:
7661:
7619:
7618:
7614:
7605:
7603:
7567:
7566:
7562:
7553:
7551:
7531:
7530:
7526:
7516:
7515:
7511:
7498:
7497:
7493:
7485:
7474:
7468:
7467:
7463:
7433:
7432:
7428:
7413:
7394:
7387:
7386:
7382:
7372:
7370:
7357:
7356:
7352:
7343:
7341:
7332:
7331:
7327:
7289:
7288:
7284:
7275:
7273:
7263:
7262:
7255:
7240:
7215:
7214:
7210:
7206:
7178:
7158:
7138:
7117:
7109:
7100:
7069:
7060:
7009:
7000:
6999:
6996:
6993:
6990:
6987:
6984:
6981:
6978:
6975:
6972:
6969:
6966:
6963:
6960:
6957:
6954:
6951:
6948:
6945:
6942:
6939:
6936:
6933:
6930:
6927:
6924:
6921:
6918:
6915:
6912:
6909:
6906:
6903:
6900:
6897:
6894:
6891:
6888:
6885:
6882:
6879:
6876:
6873:
6870:
6867:
6864:
6861:
6858:
6855:
6852:
6849:
6846:
6843:
6840:
6837:
6834:
6831:
6828:
6825:
6822:
6819:
6816:
6813:
6810:
6807:
6804:
6801:
6798:
6795:
6792:
6789:
6786:
6783:
6780:
6777:
6774:
6771:
6768:
6765:
6762:
6759:
6756:
6753:
6750:
6747:
6744:
6741:
6738:
6735:
6730:
6729:
6726:
6723:
6720:
6717:
6714:
6711:
6708:
6705:
6702:
6699:
6696:
6693:
6690:
6687:
6684:
6681:
6678:
6675:
6672:
6669:
6666:
6663:
6660:
6657:
6654:
6651:
6648:
6645:
6642:
6639:
6636:
6633:
6630:
6627:
6624:
6621:
6618:
6615:
6612:
6609:
6606:
6603:
6600:
6597:
6594:
6591:
6588:
6585:
6582:
6579:
6576:
6573:
6570:
6567:
6564:
6561:
6558:
6555:
6552:
6549:
6546:
6543:
6540:
6537:
6534:
6531:
6528:
6525:
6522:
6519:
6516:
6513:
6510:
6507:
6504:
6501:
6498:
6495:
6492:
6489:
6486:
6483:
6480:
6477:
6474:
6471:
6468:
6462:
6456:
6455:
6451:
6449:
6447:
6443:
6439:
6437:
6433:
6429:
6427:
6423:
6419:
6417:
6413:
6409:
6407:
6403:
6399:
6397:
6393:
6389:
6387:
6383:
6379:
6377:
6373:
6369:
6365:
6361:
6357:
6353:
6349:
6345:
6341:
6337:
6333:
6331:
6329:
6322:
6321:
6317:
6313:
6309:
6305:
6301:
6297:
6293:
6289:
6287:
6285:
6281:
6277:
6273:
6271:
6267:
6263:
6259:
6257:
6255:
6251:
6247:
6245:
6243:
6239:
6235:
6233:
6231:
6227:
6223:
6221:
6219:
6215:
6211:
6209:
6207:
6203:
6199:
6197:
6195:
6191:
6187:
6185:
6183:
6179:
6177:
6172:
6170:
6166:
6162:
6158:
6154:
6150:
6146:
6142:
6138:
6134:
6130:
6126:
6122:
6118:
6114:
6110:
6058:
6057:
6054:
6051:
6048:
6045:
6042:
6039:
6036:
6033:
6030:
6027:
6024:
6021:
6018:
6015:
6012:
6009:
6006:
6003:
6000:
5997:
5994:
5991:
5988:
5985:
5982:
5979:
5976:
5973:
5970:
5967:
5964:
5961:
5958:
5955:
5952:
5949:
5946:
5943:
5940:
5937:
5934:
5931:
5928:
5925:
5922:
5919:
5916:
5913:
5910:
5907:
5904:
5901:
5898:
5893:
5892:
5889:
5886:
5883:
5880:
5877:
5874:
5871:
5868:
5865:
5862:
5859:
5856:
5853:
5850:
5847:
5844:
5841:
5838:
5835:
5832:
5829:
5826:
5823:
5820:
5817:
5814:
5811:
5808:
5805:
5802:
5799:
5796:
5793:
5790:
5787:
5784:
5781:
5778:
5775:
5772:
5769:
5766:
5763:
5760:
5757:
5754:
5751:
5748:
5745:
5742:
5739:
5736:
5730:
5724:
5723:
5719:
5715:
5713:
5709:
5705:
5703:
5699:
5695:
5693:
5689:
5685:
5683:
5679:
5677:
5673:
5669:
5665:
5663:
5659:
5655:
5651:
5649:
5645:
5641:
5637:
5635:
5631:
5627:
5625:
5621:
5617:
5615:
5611:
5607:
5605:
5601:
5597:
5595:
5591:
5587:
5583:
5579:
5577:
5573:
5569:
5565:
5563:
5561:
5557:
5553:
5549:
5547:
5545:
5541:
5537:
5533:
5531:
5529:
5522:
5521:
5517:
5513:
5511:
5509:
5507:
5503:
5499:
5495:
5493:
5491:
5489:
5485:
5481:
5477:
5475:
5473:
5471:
5467:
5463:
5459:
5455:
5453:
5451:
5447:
5443:
5441:
5439:
5435:
5431:
5429:
5427:
5423:
5419:
5417:
5415:
5411:
5407:
5403:
5401:
5397:
5393:
5389:
5385:
5383:
5379:
5375:
5371:
5369:
5365:
5361:
5357:
5355:
5351:
5349:
5345:
5341:
5337:
5333:
5329:
5325:
5321:
5314:
5312:
5308:
5304:
5300:
5296:
5292:
5288:
5284:
5280:
5276:
5272:
5268:
5264:
5260:
5256:
5252:
5197:
5196:
5193:
5190:
5187:
5184:
5181:
5178:
5175:
5172:
5169:
5166:
5163:
5160:
5157:
5154:
5151:
5148:
5145:
5142:
5139:
5136:
5133:
5130:
5127:
5124:
5121:
5118:
5115:
5112:
5109:
5106:
5103:
5100:
5097:
5094:
5091:
5088:
5085:
5082:
5079:
5076:
5073:
5070:
5067:
5064:
5061:
5058:
5055:
5052:
5049:
5046:
5043:
5040:
5037:
5034:
5029:
5028:
5025:
5022:
5019:
5016:
5013:
5010:
5007:
5004:
5001:
4998:
4995:
4992:
4989:
4986:
4983:
4980:
4977:
4974:
4971:
4968:
4965:
4962:
4959:
4956:
4953:
4950:
4947:
4944:
4941:
4938:
4935:
4932:
4929:
4926:
4923:
4920:
4917:
4914:
4911:
4908:
4905:
4902:
4899:
4896:
4893:
4890:
4884:
4878:
4877:
4873:
4869:
4865:
4861:
4857:
4853:
4849:
4845:
4841:
4837:
4833:
4829:
4825:
4821:
4817:
4813:
4809:
4805:
4803:
4799:
4795:
4791:
4787:
4783:
4779:
4775:
4771:
4767:
4763:
4761:
4759:
4755:
4751:
4747:
4743:
4739:
4737:
4733:
4729:
4725:
4723:
4721:
4717:
4713:
4709:
4705:
4703:
4699:
4695:
4691:
4689:
4687:
4680:
4679:
4675:
4671:
4669:
4667:
4663:
4659:
4655:
4653:
4651:
4647:
4643:
4639:
4637:
4635:
4631:
4627:
4623:
4619:
4617:
4613:
4609:
4605:
4601:
4597:
4593:
4589:
4585:
4578:
4576:
4572:
4568:
4564:
4560:
4556:
4552:
4548:
4465:
4461:
4457:
4453:
4449:
4443:
4439:
4435:
4424:
4420:
4416:
4412:
4408:
4402:
4398:
4394:
4383:
4372:
4361:
4349:
4329:data dependency
4245:
4237:
4211:
4206:
4205:
4202:
4199:
4196:
4193:
4190:
4187:
4184:
4181:
4178:
4175:
4172:
4169:
4166:
4163:
4160:
4157:
4154:
4151:
4148:
4145:
4142:
4139:
4136:
4133:
4130:
4127:
4124:
4121:
4118:
4115:
4112:
4109:
4106:
4103:
4100:
4097:
4094:
4091:
4088:
4085:
4082:
4079:
4076:
4073:
4070:
4067:
4064:
4061:
4058:
4055:
4052:
4049:
4046:
4043:
4040:
4037:
4034:
4031:
4028:
4025:
4022:
4019:
4016:
4013:
4010:
4007:
4004:
3999:
3997:
3991:
3985:
3984:
3979:
3973:
3967:
3961:
3960:
3954:
3953:
3948:
3942:
3937:
3931:
3925:
3912:
3899:
3895:
3885:
3847:is the value of
3804:
3770:is the value of
3726:
3722:
3712:table == table
3711:
3707:
3697:
3695:
3676:archive formats
3649:
3614:
3610:
3603:
3598:
3589:
3585:
3575:
3524:string
3479:
3352:
3339:
3326:
3321:
3320:
3296:
3295:
3258:
3257:
3210:
3209:
3179:
3178:
3163:8B/10B encoding
3130:
3125:
3124:
3097:
3092:
3091:
3063:
3062:
3043:
3042:
3041:, and the last
3023:
3022:
3012:
2993:
2961:coefficient of
2895:
2891:
2884:
2863:
2858:
2857:
2849:
2838:
2757:with the first
2754:
2747:
2743:
2739:
2735:
2731:
2694:
2693:
2689:
2662:
2657:
2656:
2645:
2624:
2619:
2618:
2614:
2586:
2581:
2580:
2579:is done to the
2576:
2557:
2556:
2552:
2548:
2538:
2518:coefficient of
2455:
2438:
2404:
2403:
2380:
2379:
2376:
2369:
2342:
2329:
2316:
2311:
2310:
2308:
2275:
2262:
2257:
2256:
615:
614:
578:
573:
572:
551:
546:
545:
518:
505:
492:
479:
474:
473:
440:
427:
414:
409:
408:
380:
379:
377:
353:
352:
319:
306:
301:
300:
294:
286:
282:
273:
266:
170:
159:
153:
150:
107:
105:
83:
71:
67:
56:
50:
47:
40:
28:
24:
17:
12:
11:
5:
7796:
7794:
7786:
7785:
7780:
7770:
7769:
7766:
7765:
7749:
7748:
7737:
7736:External links
7734:
7732:
7731:
7697:
7659:
7612:
7560:
7524:
7509:
7491:
7488:on 2012-07-22.
7461:
7426:
7411:
7380:
7350:
7325:
7282:
7253:
7238:
7207:
7205:
7202:
7201:
7200:
7195:
7186:
7185:
7172:
7167:
7157:
7154:
7137:
7134:
7108:
7105:
7099:
7096:
7068:
7065:
7059:
7056:
7008:
7005:
7002:
7001:
6734:
6731:
6467:
6464:
6458:
6457:
6453:
6450:
6448:
6445:
6441:
6438:
6435:
6431:
6428:
6425:
6421:
6418:
6415:
6411:
6408:
6405:
6401:
6398:
6395:
6391:
6388:
6385:
6381:
6378:
6375:
6371:
6367:
6363:
6359:
6355:
6351:
6347:
6343:
6339:
6335:
6332:
6330:
6327:
6325:
6323:
6319:
6315:
6311:
6307:
6303:
6299:
6295:
6291:
6288:
6286:
6283:
6279:
6275:
6272:
6269:
6265:
6261:
6258:
6256:
6253:
6249:
6246:
6244:
6241:
6237:
6234:
6232:
6229:
6225:
6222:
6220:
6217:
6213:
6210:
6208:
6205:
6201:
6198:
6196:
6193:
6189:
6186:
6184:
6181:
6178:
6176:
6175:
6173:
6168:
6164:
6160:
6156:
6152:
6148:
6144:
6140:
6136:
6132:
6128:
6124:
6120:
6116:
6112:
6108:
6106:
6103:
6102:
6100:(LSBF/reverse)
6096:
6090:
6089:Coefficients:
6086:
6085:
6068:
6060:
6059:
5897:
5894:
5735:
5732:
5726:
5725:
5721:
5717:
5714:
5711:
5707:
5704:
5701:
5697:
5694:
5691:
5687:
5684:
5681:
5678:
5675:
5671:
5667:
5664:
5661:
5657:
5653:
5650:
5647:
5643:
5639:
5636:
5633:
5629:
5626:
5623:
5619:
5616:
5613:
5609:
5606:
5603:
5599:
5596:
5593:
5589:
5585:
5581:
5578:
5575:
5571:
5567:
5564:
5562:
5559:
5555:
5551:
5548:
5546:
5543:
5539:
5535:
5532:
5530:
5527:
5525:
5523:
5519:
5515:
5512:
5510:
5508:
5505:
5501:
5497:
5494:
5492:
5490:
5487:
5483:
5479:
5476:
5474:
5472:
5469:
5465:
5461:
5457:
5454:
5452:
5449:
5445:
5442:
5440:
5437:
5433:
5430:
5428:
5425:
5421:
5418:
5416:
5413:
5409:
5405:
5402:
5399:
5395:
5391:
5387:
5384:
5381:
5377:
5373:
5370:
5367:
5363:
5359:
5356:
5353:
5350:
5347:
5343:
5339:
5335:
5331:
5327:
5323:
5319:
5317:
5315:
5310:
5306:
5302:
5298:
5294:
5290:
5286:
5282:
5278:
5274:
5270:
5266:
5262:
5258:
5254:
5250:
5248:
5245:
5244:
5242:(LSBF/reverse)
5238:
5232:
5231:Coefficients:
5228:
5227:
5225:(CRC-16-CCITT)
5210:
5199:
5198:
5033:
5030:
4889:
4886:
4880:
4879:
4875:
4871:
4867:
4863:
4859:
4855:
4851:
4847:
4843:
4839:
4835:
4831:
4827:
4823:
4819:
4815:
4811:
4807:
4804:
4801:
4797:
4793:
4789:
4785:
4781:
4777:
4773:
4769:
4765:
4762:
4760:
4757:
4753:
4749:
4745:
4741:
4738:
4735:
4731:
4727:
4724:
4722:
4719:
4715:
4711:
4707:
4704:
4701:
4697:
4693:
4690:
4688:
4685:
4683:
4681:
4677:
4673:
4670:
4668:
4665:
4661:
4657:
4654:
4652:
4649:
4645:
4641:
4638:
4636:
4633:
4629:
4625:
4621:
4618:
4615:
4611:
4607:
4603:
4599:
4595:
4591:
4587:
4583:
4581:
4579:
4574:
4570:
4566:
4562:
4558:
4554:
4550:
4546:
4544:
4541:
4540:
4530:
4520:
4519:Coefficients:
4516:
4515:
4498:
4481:
4470:
4469:
4463:
4459:
4455:
4451:
4447:
4444:
4441:
4437:
4433:
4429:
4428:
4422:
4418:
4414:
4410:
4406:
4403:
4400:
4396:
4392:
4388:
4387:
4384:
4381:
4377:
4376:
4373:
4370:
4366:
4365:
4362:
4359:
4348:
4345:
4313:
4312:
4305:
4298:
4238:table = table
4210:
4207:
4003:
3924:
3911:
3908:
3892:
3891:
3812:
3811:
3810:
3731:
3706:
3703:
3656:
3655:
3619:
3602:
3599:
3597:
3594:
3582:
3581:
3487:
3486:
3485:
3380:
3367:
3364:
3359:
3355:
3351:
3346:
3342:
3338:
3333:
3329:
3303:
3265:
3226:
3223:
3220:
3217:
3186:
3137:
3133:
3110:
3107:
3104:
3100:
3079:
3076:
3073:
3070:
3050:
3030:
3011:
3008:
3000:
2999:
2940:polynomialForm
2904:
2870:
2866:
2845:
2844:
2763:
2701:
2675:
2672:
2669:
2665:
2631:
2627:
2593:
2589:
2564:
2545:
2544:
2508:+ bitString *
2482:(bitString)
2480:polynomialForm
2466:
2411:
2400:shift register
2387:
2375:
2374:Implementation
2372:
2367:
2349:
2345:
2341:
2336:
2332:
2328:
2323:
2319:
2306:
2290:
2287:
2282:
2278:
2274:
2269:
2265:
2247:
2246:
2243:
2242:
2239:
2236:
2233:
2230:
2227:
2224:
2221:
2218:
2215:
2212:
2209:
2206:
2203:
2200:
2197:
2194:
2190:
2189:
2186:
2183:
2180:
2177:
2174:
2171:
2168:
2165:
2162:
2159:
2157:
2155:
2153:
2151:
2149:
2147:
2144:
2143:
2140:
2137:
2134:
2131:
2128:
2125:
2122:
2119:
2116:
2113:
2110:
2107:
2104:
2101:
2098:
2095:
2091:
2090:
2087:
2084:
2081:
2078:
2075:
2072:
2069:
2066:
2063:
2060:
2058:
2056:
2054:
2052:
2050:
2047:
2046:
2043:
2040:
2037:
2034:
2031:
2028:
2025:
2022:
2019:
2016:
2013:
2010:
2007:
2004:
2001:
1998:
1994:
1993:
1990:
1987:
1984:
1981:
1978:
1975:
1972:
1969:
1966:
1963:
1961:
1959:
1957:
1955:
1952:
1951:
1948:
1945:
1942:
1939:
1936:
1933:
1930:
1927:
1924:
1921:
1918:
1915:
1912:
1909:
1906:
1903:
1899:
1898:
1895:
1892:
1889:
1886:
1883:
1880:
1877:
1874:
1871:
1868:
1866:
1864:
1862:
1859:
1858:
1855:
1852:
1849:
1846:
1843:
1840:
1837:
1834:
1831:
1828:
1825:
1822:
1819:
1816:
1813:
1810:
1806:
1805:
1802:
1799:
1796:
1793:
1790:
1787:
1784:
1781:
1778:
1775:
1773:
1771:
1768:
1767:
1764:
1761:
1758:
1755:
1752:
1749:
1746:
1743:
1740:
1737:
1734:
1731:
1728:
1725:
1722:
1719:
1715:
1714:
1711:
1708:
1705:
1702:
1699:
1696:
1693:
1690:
1687:
1684:
1682:
1679:
1678:
1675:
1672:
1669:
1666:
1663:
1660:
1657:
1654:
1651:
1648:
1645:
1642:
1639:
1636:
1633:
1630:
1626:
1625:
1622:
1619:
1616:
1613:
1610:
1607:
1604:
1601:
1598:
1595:
1592:
1591:
1588:
1585:
1582:
1579:
1576:
1573:
1570:
1567:
1564:
1561:
1558:
1555:
1552:
1549:
1546:
1543:
1539:
1538:
1535:
1532:
1529:
1526:
1523:
1520:
1517:
1514:
1511:
1507:
1506:
1503:
1500:
1497:
1494:
1491:
1488:
1485:
1482:
1479:
1476:
1473:
1470:
1467:
1464:
1461:
1458:
1452:
1449:
1448:
1445:
1442:
1439:
1436:
1433:
1430:
1427:
1424:
1421:
1418:
1415:
1412:
1409:
1406:
1403:
1400:
1396:
1395:
1392:
1389:
1386:
1383:
1380:
1377:
1374:
1371:
1368:
1365:
1363:
1361:
1359:
1357:
1355:
1353:
1350:
1349:
1346:
1343:
1340:
1337:
1334:
1331:
1328:
1325:
1322:
1319:
1316:
1313:
1310:
1307:
1304:
1301:
1297:
1296:
1293:
1290:
1287:
1284:
1281:
1278:
1275:
1272:
1269:
1266:
1264:
1262:
1260:
1258:
1256:
1253:
1252:
1249:
1246:
1243:
1240:
1237:
1234:
1231:
1228:
1225:
1222:
1219:
1216:
1213:
1210:
1207:
1204:
1200:
1199:
1196:
1193:
1190:
1187:
1184:
1181:
1178:
1175:
1172:
1169:
1167:
1165:
1163:
1161:
1158:
1157:
1154:
1151:
1148:
1145:
1142:
1139:
1136:
1133:
1130:
1127:
1124:
1121:
1118:
1115:
1112:
1109:
1105:
1104:
1101:
1098:
1095:
1092:
1089:
1086:
1083:
1080:
1077:
1074:
1072:
1070:
1068:
1065:
1064:
1061:
1058:
1055:
1052:
1049:
1046:
1043:
1040:
1037:
1034:
1031:
1028:
1025:
1022:
1019:
1016:
1012:
1011:
1008:
1005:
1002:
999:
996:
993:
990:
987:
984:
981:
979:
977:
974:
973:
970:
967:
964:
961:
958:
955:
952:
949:
946:
943:
940:
937:
934:
931:
928:
925:
921:
920:
917:
914:
911:
908:
905:
902:
899:
896:
893:
890:
888:
885:
884:
881:
878:
875:
872:
869:
866:
863:
860:
857:
854:
851:
848:
845:
842:
839:
836:
832:
831:
828:
825:
822:
819:
816:
813:
810:
807:
804:
801:
798:
797:
794:
791:
788:
785:
782:
779:
776:
773:
770:
767:
764:
761:
758:
755:
752:
749:
745:
744:
741:
738:
735:
732:
729:
726:
723:
720:
717:
713:
712:
709:
706:
703:
700:
697:
694:
691:
688:
685:
682:
679:
676:
673:
670:
667:
664:
657:
656:
653:
631:
628:
625:
622:
599:
596:
593:
590:
585:
581:
558:
554:
533:
530:
525:
521:
517:
512:
508:
504:
499:
495:
491:
486:
482:
461:
458:
455:
452:
447:
443:
439:
434:
430:
426:
421:
417:
396:
393:
390:
387:
375:
360:
340:
337:
334:
331:
326:
322:
318:
313:
309:
292:
284:
280:
265:
262:
233:shift register
198:shift register
172:
171:
74:
72:
65:
58:
57:
31:
29:
22:
15:
13:
10:
9:
6:
4:
3:
2:
7795:
7784:
7783:Finite fields
7781:
7779:
7776:
7775:
7773:
7762:
7761:
7756:
7751:
7750:
7745:
7740:
7739:
7735:
7728:
7717:
7710:
7709:
7701:
7698:
7692:
7686:
7679:
7672:
7671:
7663:
7660:
7655:
7651:
7647:
7643:
7639:
7635:
7631:
7627:
7623:
7616:
7613:
7602:on 2009-01-30
7601:
7597:
7593:
7589:
7585:
7581:
7577:
7576:
7571:
7564:
7561:
7550:
7547:
7543:
7539:
7535:
7528:
7525:
7520:
7513:
7510:
7505:
7501:
7495:
7492:
7484:
7480:
7473:
7472:
7465:
7462:
7457:
7453:
7449:
7445:
7441:
7437:
7430:
7427:
7422:
7418:
7414:
7412:0-7695-2373-0
7408:
7404:
7400:
7393:
7392:
7384:
7381:
7368:
7364:
7360:
7354:
7351:
7339:
7335:
7329:
7326:
7321:
7317:
7312:
7307:
7303:
7299:
7298:
7293:
7286:
7283:
7272:on 2006-09-27
7271:
7267:
7260:
7258:
7254:
7249:
7245:
7241:
7235:
7231:
7227:
7223:
7219:
7212:
7209:
7203:
7199:
7196:
7194:
7191:
7190:
7189:
7181:
7176:
7173:
7171:
7168:
7166:
7163:
7162:
7161:
7155:
7153:
7149:
7145:
7143:
7135:
7133:
7129:
7127:
7123:
7113:
7106:
7104:
7097:
7095:
7093:
7089:
7084:
7082:
7078:
7073:
7066:
7064:
7057:
7055:
7052:
7050:
7046:
7042:
7038:
7034:
7030:
7026:
7022:
7017:
7015:
7006:
6732:
6465:
6460:
6324:
6174:
6105:
6104:
6101:
6097:
6095:
6094:(MSBF/normal)
6091:
6088:
6087:
6084:
6083:(CRC-16-ANSI)
6080:
6076:
6072:
6066:
6065:
5895:
5733:
5728:
5524:
5316:
5247:
5246:
5243:
5239:
5237:
5236:(MSBF/normal)
5233:
5230:
5229:
5226:
5222:
5218:
5214:
5208:
5207:
5031:
4887:
4882:
4682:
4580:
4543:
4542:
4539:
4537:
4531:
4529:
4527:
4521:
4518:
4517:
4514:
4510:
4506:
4502:
4499:
4497:
4494:
4490:
4486:
4482:
4479:
4478:
4468:
4445:
4431:
4430:
4427:
4404:
4390:
4389:
4385:
4379:
4378:
4374:
4368:
4367:
4363:
4357:
4356:
4353:
4346:
4344:
4340:
4338:
4334:
4330:
4326:
4321:
4319:
4310:
4306:
4303:
4299:
4296:
4292:
4291:
4290:
4288:
4283:
4280:
4275:
4272:
4268:
4266:
4261:
4259:
4253:
4249:
4241:
4235:
4229:
4226:
4224:
4220:
4216:
4208:
4001:
3994:
3988:
3982:
3976:
3970:
3964:
3957:
3951:
3945:
3940:
3934:
3928:
3923:
3921:
3917:
3909:
3907:
3903:
3890:
3887:
3886:
3883:
3879:
3875:
3871:
3867:
3863:
3859:
3856:
3852:
3848:
3844:
3840:
3836:
3832:
3828:
3824:
3820:
3816:
3809:
3806:
3805:
3802:
3798:
3794:
3790:
3786:
3782:
3779:
3775:
3771:
3767:
3763:
3759:
3755:
3751:
3747:
3743:
3739:
3735:
3730:
3719:
3715:
3704:
3702:
3691:
3688:
3684:
3681:
3677:
3673:
3669:
3665:
3661:
3654:
3651:
3650:
3647:
3643:
3639:
3635:
3631:
3627:
3623:
3618:
3608:
3600:
3595:
3593:
3580:
3577:
3576:
3573:
3570:
3566:
3562:
3558:
3554:
3550:
3546:
3542:
3539:
3535:
3531:
3527:
3523:
3519:
3515:
3511:
3508:
3504:
3500:
3496:
3493:
3490:
3484:
3481:
3480:
3477:
3474:
3470:
3466:
3462:
3458:
3454:
3450:
3446:
3442:
3439:
3435:
3431:
3427:
3424:
3420:
3416:
3412:
3408:
3404:
3401:
3397:
3393:
3389:
3386:
3383:
3379:
3365:
3362:
3357:
3353:
3349:
3344:
3340:
3336:
3331:
3327:
3318:
3301:
3292:
3290:
3285:
3283:
3279:
3263:
3255:
3251:
3247:
3243:
3238:
3221:
3215:
3207:
3203:
3198:
3184:
3176:
3172:
3168:
3164:
3160:
3156:
3151:
3135:
3131:
3108:
3105:
3102:
3098:
3074:
3068:
3048:
3028:
3020:
3017:
3009:
3007:
3005:
2998:
2995:
2994:
2991:
2988:
2986:
2980:
2976:
2972:
2968:
2964:
2960:
2957:
2953:
2949:
2945:
2941:
2938:
2934:
2930:
2926:
2923:
2921:
2915:
2911:
2907:
2903:
2901:
2888:
2868:
2864:
2855:
2843:
2840:
2839:
2836:
2833:
2831:
2825:
2821:
2817:
2813:
2809:
2805:
2801:
2798:(bitstring *
2797:
2793:
2789:
2785:
2782:
2780:
2774:
2770:
2766:
2762:
2760:
2751:
2729:
2725:
2720:
2718:
2713:
2699:
2673:
2670:
2667:
2663:
2653:
2651:
2629:
2625:
2612:
2607:
2591:
2587:
2562:
2543:
2540:
2539:
2536:
2533:
2531:
2525:
2521:
2517:
2514:
2511:
2507:
2503:
2499:
2495:
2492:
2490:
2485:
2481:
2477:
2473:
2469:
2465:
2463:
2458:
2453:
2450:
2447:generating a
2446:
2441:
2436:
2432:
2428:
2423:
2409:
2401:
2385:
2373:
2371:
2365:
2347:
2343:
2339:
2334:
2330:
2326:
2321:
2317:
2304:
2288:
2285:
2280:
2276:
2272:
2267:
2263:
2253:
2240:
2237:
2234:
2231:
2228:
2225:
2222:
2219:
2216:
2213:
2210:
2207:
2204:
2201:
2198:
2195:
2192:
2191:
2187:
2184:
2181:
2178:
2175:
2172:
2169:
2166:
2163:
2160:
2158:
2156:
2154:
2152:
2150:
2148:
2146:
2145:
2141:
2138:
2135:
2132:
2129:
2126:
2123:
2120:
2117:
2114:
2111:
2108:
2105:
2102:
2099:
2096:
2093:
2092:
2088:
2085:
2082:
2079:
2076:
2073:
2070:
2067:
2064:
2061:
2059:
2057:
2055:
2053:
2051:
2049:
2048:
2044:
2041:
2038:
2035:
2032:
2029:
2026:
2023:
2020:
2017:
2014:
2011:
2008:
2005:
2002:
1999:
1996:
1995:
1991:
1988:
1985:
1982:
1979:
1976:
1973:
1970:
1967:
1964:
1962:
1960:
1958:
1956:
1954:
1953:
1949:
1946:
1943:
1940:
1937:
1934:
1931:
1928:
1925:
1922:
1919:
1916:
1913:
1910:
1907:
1904:
1901:
1900:
1896:
1893:
1890:
1887:
1884:
1881:
1878:
1875:
1872:
1869:
1867:
1865:
1863:
1861:
1860:
1856:
1853:
1850:
1847:
1844:
1841:
1838:
1835:
1832:
1829:
1826:
1823:
1820:
1817:
1814:
1811:
1808:
1807:
1803:
1800:
1797:
1794:
1791:
1788:
1785:
1782:
1779:
1776:
1774:
1772:
1770:
1769:
1765:
1762:
1759:
1756:
1753:
1750:
1747:
1744:
1741:
1738:
1735:
1732:
1729:
1726:
1723:
1720:
1717:
1716:
1712:
1709:
1706:
1703:
1700:
1697:
1694:
1691:
1688:
1685:
1683:
1681:
1680:
1676:
1673:
1670:
1667:
1664:
1661:
1658:
1655:
1652:
1649:
1646:
1643:
1640:
1637:
1634:
1631:
1628:
1627:
1623:
1620:
1617:
1614:
1611:
1608:
1605:
1602:
1599:
1596:
1594:
1593:
1589:
1586:
1583:
1580:
1577:
1574:
1571:
1568:
1565:
1562:
1559:
1556:
1553:
1550:
1547:
1544:
1541:
1540:
1536:
1533:
1530:
1527:
1524:
1521:
1518:
1515:
1512:
1509:
1508:
1504:
1501:
1498:
1495:
1492:
1489:
1486:
1483:
1480:
1477:
1474:
1471:
1468:
1465:
1462:
1459:
1457:
1456:
1453:
1446:
1443:
1440:
1437:
1434:
1431:
1428:
1425:
1422:
1419:
1416:
1413:
1410:
1407:
1404:
1401:
1398:
1397:
1393:
1390:
1387:
1384:
1381:
1378:
1375:
1372:
1369:
1366:
1364:
1362:
1360:
1358:
1356:
1354:
1352:
1351:
1347:
1344:
1341:
1338:
1335:
1332:
1329:
1326:
1323:
1320:
1317:
1314:
1311:
1308:
1305:
1302:
1299:
1298:
1294:
1291:
1288:
1285:
1282:
1279:
1276:
1273:
1270:
1267:
1265:
1263:
1261:
1259:
1257:
1255:
1254:
1250:
1247:
1244:
1241:
1238:
1235:
1232:
1229:
1226:
1223:
1220:
1217:
1214:
1211:
1208:
1205:
1202:
1201:
1197:
1194:
1191:
1188:
1185:
1182:
1179:
1176:
1173:
1170:
1168:
1166:
1164:
1162:
1160:
1159:
1155:
1152:
1149:
1146:
1143:
1140:
1137:
1134:
1131:
1128:
1125:
1122:
1119:
1116:
1113:
1110:
1107:
1106:
1102:
1099:
1096:
1093:
1090:
1087:
1084:
1081:
1078:
1075:
1073:
1071:
1069:
1067:
1066:
1062:
1059:
1056:
1053:
1050:
1047:
1044:
1041:
1038:
1035:
1032:
1029:
1026:
1023:
1020:
1017:
1014:
1013:
1009:
1006:
1003:
1000:
997:
994:
991:
988:
985:
982:
980:
978:
976:
975:
971:
968:
965:
962:
959:
956:
953:
950:
947:
944:
941:
938:
935:
932:
929:
926:
923:
922:
918:
915:
912:
909:
906:
903:
900:
897:
894:
891:
889:
887:
886:
882:
879:
876:
873:
870:
867:
864:
861:
858:
855:
852:
849:
846:
843:
840:
837:
834:
833:
829:
826:
823:
820:
817:
814:
811:
808:
805:
802:
800:
799:
795:
792:
789:
786:
783:
780:
777:
774:
771:
768:
765:
762:
759:
756:
753:
750:
747:
746:
742:
739:
736:
733:
730:
727:
724:
721:
718:
715:
714:
710:
707:
704:
701:
698:
695:
692:
689:
686:
683:
680:
677:
674:
671:
668:
665:
663:
662:
659:
658:
654:
651:
650:
647:
645:
626:
620:
611:
594:
588:
583:
579:
556:
552:
531:
528:
523:
519:
515:
510:
506:
502:
497:
493:
489:
484:
480:
459:
456:
453:
450:
445:
441:
437:
432:
428:
424:
419:
415:
391:
385:
372:
358:
338:
335:
332:
329:
324:
320:
316:
311:
307:
299:) polynomial
298:
290:
278:
271:
263:
261:
259:
249:
242:
238:
234:
230:
225:
221:
219:
215:
211:
207:
203:
199:
195:
191:
187:
186:long division
183:
179:
168:
165:
157:
154:February 2023
146:
143:
139:
136:
132:
129:
125:
122:
118:
115: –
114:
110:
109:Find sources:
103:
99:
95:
91:
87:
80:
73:
64:
63:
54:
51:February 2023
44:
39:
37:
32:This article
30:
21:
20:
7758:
7726:
7720:, retrieved
7707:
7700:
7677:
7669:
7662:
7629:
7625:
7615:
7604:. Retrieved
7600:the original
7579:
7573:
7563:
7552:. Retrieved
7527:
7512:
7503:
7494:
7483:the original
7470:
7464:
7439:
7435:
7429:
7390:
7383:
7371:. Retrieved
7362:
7353:
7342:. Retrieved
7340:. 2003-11-10
7328:
7301:
7295:
7285:
7274:. Retrieved
7270:the original
7221:
7211:
7187:
7179:
7159:
7150:
7146:
7141:
7139:
7130:
7125:
7121:
7114:
7110:
7107:Preset to −1
7101:
7098:CRC variants
7087:
7085:
7080:
7076:
7074:
7070:
7061:
7053:
7048:
7044:
7040:
7036:
7032:
7028:
7024:
7020:
7018:
7010:
6099:
6093:
6082:
6078:
6074:
6070:
6067:Polynomial:
5241:
5235:
5224:
5220:
5216:
5212:
5209:Polynomial:
4533:
4523:
4512:
4508:
4504:
4500:
4495:
4492:
4491:+ 1) ×
4488:
4484:
4480:Polynomial:
4467:(parity bit)
4466:
4426:(parity bit)
4425:
4350:
4341:
4337:continuously
4336:
4332:
4324:
4322:
4317:
4314:
4308:
4301:
4294:
4286:
4284:
4278:
4276:
4273:
4269:
4262:
4257:
4254:
4247:
4239:
4230:
4227:
4225:processors.
4218:
4214:
4212:
3998:
3992:
3986:
3980:
3974:
3968:
3962:
3955:
3949:
3943:
3938:
3932:
3926:
3913:
3901:
3893:
3888:
3881:
3877:
3873:
3869:
3865:
3861:
3857:
3854:
3850:
3846:
3842:
3838:
3834:
3830:
3826:
3822:
3818:
3814:
3807:
3800:
3796:
3792:
3788:
3784:
3780:
3777:
3773:
3769:
3765:
3761:
3757:
3753:
3749:
3745:
3741:
3737:
3736:i := 1
3733:
3720:
3713:
3708:
3692:
3683:image format
3659:
3657:
3652:
3645:
3641:
3637:
3633:
3629:
3625:
3621:
3607:lookup table
3604:
3583:
3578:
3571:
3568:
3564:
3560:
3556:
3552:
3548:
3544:
3540:
3537:
3533:
3529:
3525:
3521:
3517:
3513:
3509:
3506:
3502:
3498:
3494:
3491:
3488:
3482:
3475:
3472:
3468:
3464:
3460:
3456:
3452:
3448:
3444:
3440:
3437:
3433:
3429:
3425:
3422:
3418:
3414:
3410:
3406:
3402:
3399:
3395:
3391:
3387:
3384:
3381:
3293:
3286:
3278:floppy disks
3239:
3206:burst errors
3199:
3152:
3013:
3001:
2996:
2989:
2982:
2978:
2974:
2970:
2966:
2962:
2958:
2955:
2951:
2947:
2943:
2939:
2936:
2932:
2928:
2924:
2917:
2913:
2909:
2905:
2889:
2853:
2846:
2841:
2834:
2827:
2823:
2819:
2815:
2811:
2807:
2803:
2799:
2795:
2791:
2787:
2783:
2776:
2772:
2768:
2764:
2758:
2752:
2721:
2716:
2714:
2654:
2649:
2617:so that the
2610:
2608:
2546:
2541:
2534:
2527:
2523:
2519:
2515:
2512:
2509:
2505:
2501:
2497:
2493:
2486:
2483:
2479:
2475:
2471:
2467:
2462:exclusive OR
2456:
2448:
2439:
2430:
2424:
2377:
2363:
2302:
2254:
2250:
612:
373:
283:, decimal 87
274:
255:
240:
194:exclusive or
175:
160:
151:
141:
134:
127:
120:
108:
48:
41:Please help
33:
7136:Post-invert
6463:fragments:
5731:fragments:
4885:fragments:
4223:superscalar
4188:0xFFFFFFFFu
4113:lookupIndex
4089:data_length
4056:0xFFFFFFFFu
4038:data_length
3916:memoization
3803:i < 256
3588:before the
3547:0x0001 {
3447:0x8000 {
3319:polynomial
3282:hard drives
3254:serial port
2771:bitString,
2728:associative
2724:commutative
2652:zero bits.
2474:bitString,
2445:constructor
289:hexadecimal
214:parallelism
90:independent
7772:Categories
7722:2016-02-16
7606:2016-02-16
7584:Armonk, NY
7554:2016-02-16
7373:4 November
7344:2016-02-16
7276:2016-02-16
7204:References
4250:table_high
3878:rightshift
3843:rightShift
3833:0x8408 //
3827:rightShift
3756:0x1021 //
3674:and other
3638:rightShift
3634:rightShift
3565:rightShift
3553:rightShift
3536:8 {
3499:byte array
3436:8 {
3392:byte array
3016:bit serial
2910:byte array
2802:)
2449:Polynomial
2427:pseudocode
258:endianness
208:) through
206:obfuscated
202:algorithms
124:newspapers
98:redirected
7654:250472783
7646:0018-9340
7538:Newsgroup
7456:206624854
6167:← r
6163:← r
6159:← r
6155:← r
6151:← r
6147:← r
6143:← r
6139:← r
6135:← r
6131:← r
6127:← r
6123:← r
6119:← r
6115:← r
6111:← r
5309:← r
5305:← r
5301:← r
5297:← r
5293:← r
5289:← r
5285:← r
5281:← r
5277:← r
5273:← r
5269:← r
5265:← r
5261:← r
5257:← r
5253:← r
4573:← r
4569:← r
4565:← r
4561:← r
4557:← r
4553:← r
4549:← r
4538:/reverse)
3930:CRC32
3884:i > 0
3797:leftshift
3766:leftShift
3750:leftShift
3622:leftShift
3465:leftShift
3453:leftShift
3421:(n-8))
3419:leftShift
3280:and most
3106:−
2769:bit array
2746:with the
2736:bitString
2671:−
2646:bitString
2577:bitString
2549:bitString
2472:bit array
237:XOR gates
88:that are
7421:10308354
7367:Archived
7248:27306826
7193:Adler-32
7156:See also
6991:>>
6973:<<
6955:<<
6937:>>
6916:<<
6871:>>
6844:>>
6817:>>
6757:uint16_t
6721:<<
6697:<<
6679:<<
6658:<<
6613:>>
6586:>>
6559:>>
6532:>>
6490:uint16_t
6171:←
6049:>>
6031:<<
6013:<<
5995:>>
5974:<<
5920:uint16_t
5884:<<
5866:<<
5842:<<
5821:>>
5794:>>
5758:uint16_t
5313:←
5188:>>
5170:>>
5143:<<
5125:<<
5107:<<
5020:<<
5002:<<
4981:>>
4963:>>
4577:←
4528:/normal)
4307:XOR the
4167:CRCTable
4155:>>
4110:uint32_t
4047:uint32_t
4014:uint32_t
4005:#include
3963:for each
3927:Function
3664:Ethernet
3617:) with:
3501:string,
3495:function
3417:(string
3394:string,
3388:function
3246:ethernet
3242:IEEE 802
3175:software
3019:hardware
2912:string,
2906:function
2852:is only
2765:function
2468:function
7590:: 705.
7546:Usenet:
7540::
7320:5363350
6736:uint8_t
6469:uint8_t
6098:0xa001
6092:0x8005
5899:uint8_t
5737:uint8_t
5240:0x8408
5234:0x1021
5035:uint8_t
4891:uint8_t
4458:+ … + s
4417:+ … + e
4318:exceeds
4260:table?
4026:uint8_t
3944:Output:
3169:-style
2954:8 {
264:Example
188:of the
138:scholar
102:deleted
7760:GitHub
7652:
7644:
7548:
7454:
7419:
7409:
7318:
7246:
7236:
7175:Parity
7081:before
6461:C code
5729:C code
4883:C code
4333:before
4279:equals
4194:return
4068:size_t
4035:size_t
3996:crc32
3993:return
3933:Input:
3817:{
3740:{
3678:, and
3660:CRC-32
3586:string
3574:rem }
3572:return
3478:rem }
3476:return
3289:XMODEM
3250:RS-232
3248:) and
3167:RS-232
2990:return
2835:return
2535:return
2452:object
644:borrow
212:-wise
190:binary
140:
133:
126:
119:
111:
94:merged
7712:(PDF)
7674:(PDF)
7650:S2CID
7582:(6).
7486:(PDF)
7479:Intel
7475:(PDF)
7452:S2CID
7417:S2CID
7395:(PDF)
7316:S2CID
7244:S2CID
6889:&
6631:&
4532:0x8c
4242:table
4197:crc32
4182:crc32
4152:crc32
4143:crc32
4134:&
4122:crc32
4107:const
4050:crc32
4023:const
4017:CRC32
3972:data
3966:byte
3896:i + j
3882:while
3851:; let
3801:while
3774:; let
3727:table
3716:table
3317:CCITT
2987:below
2922:below
2832:below
2781:below
2532:below
2491:below
2398:-bit
287:, or
277:ASCII
235:with
145:JSTOR
131:books
100:, or
7691:link
7642:ISSN
7407:ISBN
7375:2017
7234:ISBN
6081:+ 1
5223:+ 1
4536:LSBF
4526:MSBF
4511:+ 1
4258:same
4137:0xff
4128:data
4086:<
4029:data
3880:1 }
3868:255
3862:from
3839:else
3821:crc
3799:1 }
3785:from
3762:else
3744:crc
3668:FDDI
3561:else
3543:rem
3530:from
3514:from
3497:crc(
3461:else
3443:rem
3430:from
3407:from
3390:crc(
3155:byte
2975:else
2948:from
2929:from
2908:crc(
2900:byte
2820:else
2788:from
2767:crc(
2726:and
2498:from
2470:crc(
216:and
210:byte
117:news
7634:doi
7592:doi
7588:IBM
7444:doi
7399:doi
7338:W3C
7306:doi
7226:doi
7118:rem
7077:and
6444:+ e
6434:+ e
6424:+ e
6414:+ e
6404:+ e
6394:+ e
6384:+ e
6374:+ e
6370:+ e
6362:+ e
6334:+ e
6318:+ s
6290:+ s
6278:+ s
6274:+ s
6264:+ s
6252:+ s
6240:+ s
6228:+ s
6216:+ s
6204:+ s
6192:+ s
5720:+ e
5710:+ e
5700:+ e
5690:+ e
5674:+ e
5670:+ e
5660:+ e
5656:+ e
5646:+ e
5642:+ e
5632:+ e
5628:+ e
5618:+ e
5608:+ e
5598:+ e
5588:+ e
5584:+ e
5580:+ e
5570:+ e
5566:+ e
5554:+ e
5550:+ e
5538:+ e
5534:+ e
5518:+ s
5514:+ s
5500:+ s
5496:+ s
5482:+ s
5478:+ s
5464:+ s
5460:+ s
5456:+ s
5444:+ s
5432:+ s
5420:+ s
5408:+ s
5404:+ s
5394:+ s
5390:+ s
5380:+ s
5376:+ s
5366:+ s
5362:+ s
5346:+ s
5338:+ s
5330:+ s
5322:+ s
4874:+ e
4870:+ e
4866:+ e
4858:+ e
4854:+ e
4850:+ e
4842:+ e
4838:+ e
4830:+ e
4826:+ e
4818:+ e
4814:+ e
4810:+ e
4806:+ e
4800:+ e
4792:+ e
4788:+ e
4784:+ e
4780:+ e
4776:+ e
4772:+ e
4768:+ e
4764:+ e
4752:+ e
4748:+ e
4744:+ e
4740:+ e
4734:+ e
4730:+ e
4726:+ e
4714:+ e
4710:+ e
4706:+ e
4700:+ e
4696:+ e
4692:+ e
4676:+ e
4672:+ e
4660:+ e
4656:+ e
4644:+ e
4640:+ e
4628:+ e
4624:+ e
4620:+ e
4614:+ e
4606:+ e
4598:+ e
4590:+ e
4586:+ e
4582:0 e
4462:+ s
4454:+ s
4450:= s
4442:i+8
4440:+ c
4436:= d
4421:+ e
4413:+ e
4409:= e
4399:+ c
4395:= d
4248:xor
4240:xor
4062:for
3922:).
3902:xor
3874:xor
3858:for
3831:xor
3829:1)
3823:and
3793:xor
3781:for
3754:xor
3752:1)
3746:and
3723:crc
3714:xor
3698:536
3687:PNG
3680:PNG
3672:ZIP
3646:xor
3642:xor
3640:8)
3630:xor
3626:xor
3624:8)
3611:rem
3590:xor
3557:xor
3555:1)
3545:and
3526:for
3522:xor
3510:for
3503:int
3469:and
3457:xor
3455:1)
3445:and
3426:for
3415:xor
3403:for
3396:int
3165:or
2971:xor
2944:for
2937:xor
2925:for
2914:int
2896:xor
2892:xor
2816:xor
2796:xor
2784:for
2773:int
2744:xor
2524:xor
2494:for
2476:int
2457:xor
297:HEC
229:CRC
7774::
7757:.
7725:,
7714:,
7687:}}
7683:{{
7648:.
7640:.
7630:72
7628:.
7624:.
7586::
7580:41
7578:.
7572:.
7544:.
7536:.
7502:.
7450:.
7440:57
7438:.
7415:.
7405:.
7365:.
7361:.
7336:.
7314:.
7302:31
7300:.
7294:.
7256:^
7242:.
7232:.
7220:.
7182:+1
7088:as
7047:+
7043:+
7039:+
7035:+
7031:+
7027:+
7016:.
6997:);
6922:);
6877:);
6850:);
6823:);
6727:);
6700:15
6664:);
6619:);
6592:);
6565:);
6538:);
6368:15
6360:14
6356:13
6352:12
6348:11
6344:10
6340:9
6328:8
6169:15
6165:14
6161:13
6157:12
6153:11
6149:10
6145:9
6141:8
6137:7
6133:6
6129:5
6125:4
6121:3
6117:2
6113:1
6109:0
6077:+
6073:+
6055:);
5980:);
5890:);
5887:12
5827:);
5800:);
5624:15
5614:14
5604:13
5594:12
5576:11
5560:10
5544:9
5528:8
5311:15
5307:14
5303:13
5299:12
5295:11
5291:10
5287:9
5283:8
5279:7
5275:6
5271:5
5267:4
5263:3
5259:2
5255:1
5251:0
5219:+
5215:+
5194:);
5149:);
5026:);
4987:);
4575:7
4571:6
4567:5
4563:4
4559:3
4555:2
4551:1
4547:0
4507:+
4503:+
4487:+
4252:.
4185:^=
4098:++
3975:do
3969:in
3900:i
3870:by
3866:to
3864:0
3860:j
3853:j
3837:}
3819:if
3815:do
3789:to
3787:0
3783:j
3776:j
3760:}
3742:if
3738:do
3729::
3696:65
3670:,
3666:,
3541:if
3534:to
3532:1
3528:j
3518:to
3516:1
3512:i
3441:if
3434:to
3432:1
3428:j
3411:to
3409:1
3405:i
3378::
3345:12
3332:16
3197:.
2969:)
2959:if
2952:to
2950:1
2946:j
2933:to
2931:1
2927:i
2898:a
2814:)
2804:if
2792:to
2790:1
2786:i
2750:.
2712:.
2516:if
2502:to
2500:1
2496:i
2370:.
2368:16
2307:16
2241:0
2188:0
2142:0
2089:0
2045:0
1992:0
1950:0
1897:1
1857:0
1804:0
1766:0
1713:1
1677:0
1624:1
1590:0
1537:1
1505:0
1447:0
1394:0
1348:0
1295:1
1251:0
1198:1
1156:0
1103:0
1063:0
1010:1
972:0
919:0
883:0
830:1
796:0
743:0
711:0
610:.
376:16
293:16
291:57
285:10
220:.
96:,
7763:.
7746:.
7693:)
7656:.
7636::
7609:.
7594::
7557:.
7521:.
7506:.
7458:.
7446::
7423:.
7401::
7377:.
7347:.
7322:.
7308::
7279:.
7250:.
7228::
7184:.
7180:x
7142:x
7126:n
7122:n
7049:x
7045:x
7041:x
7037:x
7033:x
7029:x
7025:x
6994:8
6988:f
6985:(
6982:^
6979:)
6976:7
6970:f
6967:(
6964:^
6961:)
6958:6
6952:f
6949:(
6946:^
6943:)
6940:8
6934:c
6931:(
6928:=
6925:r
6919:8
6913:p
6910:(
6907:|
6904:e
6901:=
6898:f
6895:;
6892:1
6886:p
6883:=
6880:p
6874:1
6868:p
6865:(
6862:^
6859:p
6856:=
6853:p
6847:2
6841:p
6838:(
6835:^
6832:p
6829:=
6826:p
6820:4
6814:e
6811:(
6808:^
6805:e
6802:=
6799:p
6796:;
6793:d
6790:^
6787:c
6784:=
6781:e
6778:…
6775:;
6772:f
6769:,
6766:r
6763:,
6760:c
6754:;
6751:p
6748:,
6745:e
6742:,
6739:d
6724:1
6718:t
6715:(
6712:^
6709:t
6706:^
6703:)
6694:t
6691:(
6688:^
6685:)
6682:8
6676:c
6673:(
6670:=
6667:r
6661:1
6655:s
6652:(
6649:|
6646:p
6643:=
6640:t
6637:;
6634:1
6628:p
6625:=
6622:p
6616:1
6610:p
6607:(
6604:^
6601:p
6598:=
6595:p
6589:2
6583:p
6580:(
6577:^
6574:p
6571:=
6568:p
6562:4
6556:s
6553:(
6550:^
6547:s
6544:=
6541:p
6535:8
6529:c
6526:(
6523:^
6520:d
6517:=
6514:s
6511:…
6508:;
6505:t
6502:,
6499:r
6496:,
6493:c
6487:;
6484:p
6481:,
6478:s
6475:,
6472:d
6454:p
6452:e
6446:7
6442:p
6440:e
6436:6
6432:7
6430:e
6426:5
6422:6
6420:e
6416:4
6412:5
6410:e
6406:3
6402:4
6400:e
6396:2
6392:3
6390:e
6386:1
6382:2
6380:e
6376:0
6372:1
6366:c
6364:0
6358:c
6354:c
6350:c
6346:c
6342:c
6338:c
6336:p
6326:c
6320:p
6316:7
6314:c
6312:6
6310:c
6308:5
6306:c
6304:4
6302:c
6300:3
6298:c
6296:2
6294:c
6292:7
6284:1
6282:c
6280:6
6276:7
6270:0
6268:c
6266:5
6262:6
6260:s
6254:4
6250:5
6248:s
6242:3
6238:4
6236:s
6230:2
6226:3
6224:s
6218:1
6214:2
6212:s
6206:0
6202:1
6200:s
6194:p
6190:0
6188:s
6182:p
6180:s
6107:r
6079:x
6075:x
6071:x
6052:4
6046:f
6043:(
6040:^
6037:)
6034:3
6028:f
6025:(
6022:^
6019:)
6016:8
6010:f
6007:(
6004:^
6001:)
5998:8
5992:c
5989:(
5986:=
5983:r
5977:4
5971:e
5968:(
5965:^
5962:e
5959:=
5956:f
5953:;
5950:d
5947:^
5944:c
5941:=
5938:e
5935:…
5932:;
5929:r
5926:,
5923:c
5917:;
5914:f
5911:,
5908:e
5905:,
5902:d
5881:t
5878:(
5875:^
5872:)
5869:5
5863:t
5860:(
5857:^
5854:t
5851:^
5848:)
5845:8
5839:c
5836:(
5833:=
5830:r
5824:4
5818:s
5815:(
5812:^
5809:s
5806:=
5803:t
5797:8
5791:c
5788:(
5785:^
5782:d
5779:=
5776:s
5773:…
5770:;
5767:r
5764:,
5761:c
5755:;
5752:t
5749:,
5746:s
5743:,
5740:d
5722:3
5718:7
5716:e
5712:2
5708:6
5706:e
5702:1
5698:5
5696:e
5692:0
5688:4
5686:e
5682:3
5680:e
5676:3
5672:7
5668:2
5666:e
5662:2
5658:6
5654:1
5652:e
5648:1
5644:5
5640:0
5638:e
5634:0
5630:4
5622:c
5620:3
5612:c
5610:2
5602:c
5600:1
5592:c
5590:3
5586:7
5582:0
5574:c
5572:2
5568:6
5558:c
5556:1
5552:5
5542:c
5540:0
5536:4
5526:c
5520:3
5516:7
5506:7
5504:c
5502:2
5498:6
5488:6
5486:c
5484:1
5480:5
5470:5
5468:c
5466:0
5462:4
5458:7
5450:4
5448:c
5446:6
5438:3
5436:c
5434:5
5426:2
5424:c
5422:4
5414:1
5412:c
5410:3
5406:7
5400:0
5398:c
5396:2
5392:6
5388:7
5386:s
5382:1
5378:5
5374:6
5372:s
5368:0
5364:4
5360:5
5358:s
5354:4
5352:s
5348:3
5344:7
5342:s
5340:2
5336:6
5334:s
5332:1
5328:5
5326:s
5324:0
5320:4
5318:s
5249:r
5221:x
5217:x
5213:x
5191:5
5185:f
5182:(
5179:^
5176:)
5173:4
5167:f
5164:(
5161:^
5158:f
5155:=
5152:r
5146:6
5140:e
5137:(
5134:^
5131:)
5128:4
5122:e
5119:(
5116:^
5113:)
5110:3
5104:e
5101:(
5098:^
5095:e
5092:=
5089:f
5086:;
5083:d
5080:^
5077:c
5074:=
5071:e
5068:…
5065:;
5062:r
5059:,
5056:f
5053:,
5050:e
5047:,
5044:d
5041:,
5038:c
5023:4
5017:f
5014:(
5011:^
5008:)
5005:1
4999:f
4996:(
4993:=
4990:r
4984:7
4978:e
4975:(
4972:^
4969:)
4966:4
4960:e
4957:(
4954:^
4951:e
4948:=
4945:f
4942:;
4939:d
4936:^
4933:c
4930:=
4927:e
4924:…
4921:;
4918:r
4915:,
4912:f
4909:,
4906:e
4903:,
4900:d
4897:,
4894:c
4876:1
4872:3
4868:4
4864:7
4862:e
4860:0
4856:2
4852:3
4848:6
4846:e
4844:1
4840:2
4836:5
4834:e
4832:0
4828:1
4824:4
4822:e
4820:1
4816:3
4812:4
4808:7
4802:0
4798:3
4796:e
4794:1
4790:3
4786:4
4782:7
4778:0
4774:2
4770:3
4766:6
4758:2
4756:e
4754:0
4750:2
4746:3
4742:6
4736:1
4732:2
4728:5
4720:1
4718:e
4716:1
4712:2
4708:5
4702:0
4698:1
4694:4
4686:0
4684:e
4678:7
4674:3
4666:6
4664:e
4662:6
4658:2
4650:5
4648:e
4646:5
4642:1
4634:4
4632:e
4630:7
4626:4
4622:0
4616:7
4612:3
4610:e
4608:6
4604:2
4602:e
4600:5
4596:1
4594:e
4592:7
4588:4
4584:0
4545:r
4534:(
4524:(
4509:x
4505:x
4501:x
4493:x
4489:x
4485:x
4483:(
4464:0
4460:1
4456:6
4452:7
4448:p
4446:s
4438:i
4434:i
4432:s
4423:0
4419:1
4415:6
4411:7
4407:p
4405:e
4401:i
4397:i
4393:i
4391:e
4382:i
4380:d
4371:i
4369:r
4360:i
4358:c
4309:n
4302:n
4295:n
4287:n
4219:n
4215:n
4203:}
4200:;
4191:;
4176:}
4170:;
4164:^
4161:)
4158:8
4149:(
4146:=
4140:;
4131:)
4125:^
4119:(
4116:=
4104:{
4101:)
4095:i
4092:;
4083:i
4080:;
4077:0
4074:=
4071:i
4065:(
4059:;
4053:=
4044:{
4041:)
4032:,
4020:(
3904:j
3615:i
3366:1
3363:+
3358:5
3354:x
3350:+
3341:x
3337:+
3328:x
3302:x
3264:x
3252:(
3244:(
3225:)
3222:x
3219:(
3216:M
3185:x
3136:0
3132:x
3109:1
3103:n
3099:x
3078:)
3075:x
3072:(
3069:R
3049:n
3029:x
2979:x
2967:x
2963:x
2869:n
2865:x
2854:n
2824:x
2812:x
2808:x
2800:x
2759:n
2717:n
2700:x
2674:1
2668:n
2664:x
2650:n
2630:n
2626:x
2611:n
2592:0
2588:x
2563:x
2520:x
2510:x
2506:x
2440:x
2431:n
2410:x
2386:n
2364:x
2348:3
2344:x
2340:+
2335:4
2331:x
2327:+
2322:7
2318:x
2303:x
2289:x
2286:+
2281:5
2277:x
2273:+
2268:7
2264:x
2238:0
2235:0
2232:1
2229:1
2226:0
2223:0
2220:1
2217:0
2214:0
2211:0
2208:0
2205:0
2202:0
2199:0
2196:0
2193:=
2185:0
2182:0
2179:0
2176:0
2173:0
2170:0
2167:0
2164:0
2161:−
2139:0
2136:0
2133:1
2130:1
2127:0
2124:0
2121:1
2118:0
2115:0
2112:0
2109:0
2106:0
2103:0
2100:0
2097:0
2094:=
2086:0
2083:0
2080:0
2077:0
2074:0
2071:0
2068:0
2065:0
2062:−
2042:0
2039:0
2036:1
2033:1
2030:0
2027:0
2024:1
2021:0
2018:0
2015:0
2012:0
2009:0
2006:0
2003:0
2000:0
1997:=
1989:0
1986:0
1983:0
1980:0
1977:0
1974:0
1971:0
1968:0
1965:−
1947:0
1944:0
1941:1
1938:1
1935:0
1932:0
1929:1
1926:0
1923:0
1920:0
1917:0
1914:0
1911:0
1908:0
1905:0
1902:=
1894:1
1891:1
1888:0
1885:0
1882:0
1879:0
1876:0
1873:1
1870:−
1854:0
1851:0
1848:0
1845:0
1842:1
1839:0
1836:1
1833:0
1830:0
1827:0
1824:1
1821:0
1818:0
1815:0
1812:0
1809:=
1801:0
1798:0
1795:0
1792:0
1789:0
1786:0
1783:0
1780:0
1777:−
1763:0
1760:0
1757:0
1754:0
1751:1
1748:0
1745:1
1742:0
1739:0
1736:0
1733:1
1730:0
1727:0
1724:0
1721:0
1718:=
1710:1
1707:1
1704:0
1701:0
1698:0
1695:0
1692:0
1689:1
1686:−
1674:0
1671:0
1668:0
1665:0
1662:0
1659:1
1656:0
1653:0
1650:0
1647:0
1644:1
1641:0
1638:1
1635:0
1632:0
1629:=
1621:1
1618:1
1615:0
1612:0
1609:0
1606:0
1603:0
1600:1
1597:−
1587:0
1584:0
1581:0
1578:0
1575:0
1572:0
1569:1
1566:1
1563:0
1560:0
1557:1
1554:0
1551:1
1548:1
1545:0
1542:=
1534:1
1531:1
1528:0
1525:0
1522:0
1519:0
1516:0
1513:1
1510:−
1502:0
1499:0
1496:0
1493:0
1490:0
1487:0
1484:0
1481:0
1478:1
1475:0
1472:1
1469:0
1466:1
1463:1
1460:1
1444:1
1441:0
1438:0
1435:0
1432:1
1429:0
1426:1
1423:0
1420:0
1417:0
1414:0
1411:0
1408:0
1405:0
1402:0
1399:=
1391:0
1388:0
1385:0
1382:0
1379:0
1376:0
1373:0
1370:0
1367:−
1345:1
1342:0
1339:0
1336:0
1333:1
1330:0
1327:1
1324:0
1321:0
1318:0
1315:0
1312:0
1309:0
1306:0
1303:0
1300:=
1292:1
1289:1
1286:0
1283:0
1280:0
1277:0
1274:0
1271:1
1268:−
1248:0
1245:1
1242:1
1239:0
1236:1
1233:0
1230:1
1227:0
1224:1
1221:0
1218:0
1215:0
1212:0
1209:0
1206:0
1203:=
1195:1
1192:1
1189:0
1186:0
1183:0
1180:0
1177:0
1174:1
1171:−
1153:0
1150:0
1147:0
1144:1
1141:1
1138:0
1135:1
1132:0
1129:1
1126:1
1123:0
1120:0
1117:0
1114:0
1111:0
1108:=
1100:0
1097:0
1094:0
1091:0
1088:0
1085:0
1082:0
1079:0
1076:−
1060:0
1057:0
1054:0
1051:1
1048:1
1045:0
1042:1
1039:0
1036:1
1033:1
1030:0
1027:0
1024:0
1021:0
1018:0
1015:=
1007:1
1004:1
1001:0
998:0
995:0
992:0
989:0
986:1
983:−
969:0
966:0
963:0
960:0
957:0
954:1
951:1
948:0
945:1
942:1
939:0
936:1
933:0
930:0
927:0
924:=
916:0
913:0
910:0
907:0
904:0
901:0
898:0
895:0
892:−
880:0
877:0
874:0
871:0
868:0
865:1
862:1
859:0
856:1
853:1
850:0
847:1
844:0
841:0
838:0
835:=
827:1
824:1
821:0
818:0
815:0
812:0
809:0
806:1
803:−
793:0
790:0
787:0
784:0
781:0
778:0
775:0
772:1
769:1
766:1
763:0
760:1
757:0
754:1
751:0
748:=
740:0
737:0
734:0
731:0
728:0
725:0
722:0
719:0
716:−
708:0
705:0
702:0
699:0
696:0
693:0
690:0
687:1
684:1
681:1
678:0
675:1
672:0
669:1
666:0
630:)
627:x
624:(
621:G
598:)
595:x
592:(
589:M
584:8
580:x
557:8
553:x
532:x
529:+
524:3
520:x
516:+
511:5
507:x
503:+
498:6
494:x
490:+
485:7
481:x
460:1
457:+
454:x
451:+
446:2
442:x
438:+
433:4
429:x
425:+
420:6
416:x
395:)
392:x
389:(
386:M
359:x
339:1
336:+
333:x
330:+
325:2
321:x
317:+
312:8
308:x
281:2
272:.
241:x
167:)
161:(
156:)
152:(
142:·
135:·
128:·
121:·
104:.
82:.
53:)
49:(
38:.
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.