Standard test vector
CRC implementations are commonly verified with the ASCII input 123456789.
- Input format
- ASCII
- Input
- 123456789
- Expected CRC
- 0xDA
- Residue
- 0x00
Result is calculated from the current input. Check is the published verification value for the standard input 123456789. Click another algorithm to view its detail page.
Result
0xDA
Check
0xDA
Result
0xB4
Check
0xB4
Result
0xEA
Check
0xEA
Result
0xF7
Check
0xF7
Result
0x25
Check
0x25
/*
* Model: CRC-8 / CDMA2000 (8-bit)
* Poly: 0x9B, Init: 0xFF, XorOut: 0x00
* CRC Table C Source Code & Lookup Table Generator
*/
#include <stdint.h>
#include <stddef.h>
const uint8_t crc_table[256] = {
0x00, 0x9B, 0xAD, 0x36, 0xC1, 0x5A, 0x6C, 0xF7,
0x19, 0x82, 0xB4, 0x2F, 0xD8, 0x43, 0x75, 0xEE,
0x32, 0xA9, 0x9F, 0x04, 0xF3, 0x68, 0x5E, 0xC5,
0x2B, 0xB0, 0x86, 0x1D, 0xEA, 0x71, 0x47, 0xDC,
0x64, 0xFF, 0xC9, 0x52, 0xA5, 0x3E, 0x08, 0x93,
0x7D, 0xE6, 0xD0, 0x4B, 0xBC, 0x27, 0x11, 0x8A,
0x56, 0xCD, 0xFB, 0x60, 0x97, 0x0C, 0x3A, 0xA1,
0x4F, 0xD4, 0xE2, 0x79, 0x8E, 0x15, 0x23, 0xB8,
0xC8, 0x53, 0x65, 0xFE, 0x09, 0x92, 0xA4, 0x3F,
0xD1, 0x4A, 0x7C, 0xE7, 0x10, 0x8B, 0xBD, 0x26,
0xFA, 0x61, 0x57, 0xCC, 0x3B, 0xA0, 0x96, 0x0D,
0xE3, 0x78, 0x4E, 0xD5, 0x22, 0xB9, 0x8F, 0x14,
0xAC, 0x37, 0x01, 0x9A, 0x6D, 0xF6, 0xC0, 0x5B,
0xB5, 0x2E, 0x18, 0x83, 0x74, 0xEF, 0xD9, 0x42,
0x9E, 0x05, 0x33, 0xA8, 0x5F, 0xC4, 0xF2, 0x69,
0x87, 0x1C, 0x2A, 0xB1, 0x46, 0xDD, 0xEB, 0x70,
0x0B, 0x90, 0xA6, 0x3D, 0xCA, 0x51, 0x67, 0xFC,
0x12, 0x89, 0xBF, 0x24, 0xD3, 0x48, 0x7E, 0xE5,
0x39, 0xA2, 0x94, 0x0F, 0xF8, 0x63, 0x55, 0xCE,
0x20, 0xBB, 0x8D, 0x16, 0xE1, 0x7A, 0x4C, 0xD7,
0x6F, 0xF4, 0xC2, 0x59, 0xAE, 0x35, 0x03, 0x98,
0x76, 0xED, 0xDB, 0x40, 0xB7, 0x2C, 0x1A, 0x81,
0x5D, 0xC6, 0xF0, 0x6B, 0x9C, 0x07, 0x31, 0xAA,
0x44, 0xDF, 0xE9, 0x72, 0x85, 0x1E, 0x28, 0xB3,
0xC3, 0x58, 0x6E, 0xF5, 0x02, 0x99, 0xAF, 0x34,
0xDA, 0x41, 0x77, 0xEC, 0x1B, 0x80, 0xB6, 0x2D,
0xF1, 0x6A, 0x5C, 0xC7, 0x30, 0xAB, 0x9D, 0x06,
0xE8, 0x73, 0x45, 0xDE, 0x29, 0xB2, 0x84, 0x1F,
0xA7, 0x3C, 0x0A, 0x91, 0x66, 0xFD, 0xCB, 0x50,
0xBE, 0x25, 0x13, 0x88, 0x7F, 0xE4, 0xD2, 0x49,
0x95, 0x0E, 0x38, 0xA3, 0x54, 0xCF, 0xF9, 0x62,
0x8C, 0x17, 0x21, 0xBA, 0x4D, 0xD6, 0xE0, 0x7B
};
uint8_t calculate_crc(const uint8_t *data, size_t length) {
uint8_t crc = 0xFF;
for (size_t i = 0; i < length; i++) {
#if 0
uint8_t idx = (uint8_t)(crc ^ data[i]);
crc = (crc >> 8) ^ crc_table[idx];
#else
uint8_t idx = (uint8_t)((crc >> 0) ^ data[i]);
crc = (crc << 8) ^ crc_table[idx];
#endif
}
return crc ^ 0x00;
}CRC-8/CDMA2000 is an 8-bit CRC variant used in CDMA2000 mobile communication systems.
CRC-8/CDMA2000 is a 8-bit CRC model defined by polynomial 0x9B, an initial register value of 0xFF, and final XOR 0x00. It uses normal, non-reflected input and output processing.
Documented application context for this model includes CDMA2000, Mobile networks, Telecommunications. The calculator above applies this exact parameter set to the current input; the published Check value below is instead the fixed verification result for ASCII 123456789.
CRC implementations are commonly verified with the ASCII input 123456789.
A model is identified by its complete parameter set, not its polynomial alone.
Continue with the main calculator, browse the algorithm catalog, compare models in the Algorithm Reference section, or generate a lookup table.
| Parameter | Value | Meaning | Reference |
|---|---|---|---|
| Width | 8 bits | CRC register and result width | Read guide |
| Poly | 0x9B | Generator polynomial without the leading term | Read guide |
| Init | 0xFF | Initial CRC register value | Read guide |
| RefIn | No | Reflect each input byte before processing | Read guide |
| RefOut | No | Reflect the register before XOR Out | Read guide |
| XorOut | 0x00 | Final value XORed with the CRC register | Read guide |
| Check | 0xDA | CRC of ASCII “123456789” | Read guide |
| Residue | 0x00 | Expected residue after appending a valid CRC | Read guide |
For the standard ASCII test input 123456789, the check value of CRC-8/CDMA2000 is 0xDA.
CRC-8/CDMA2000 uses the 8-bit polynomial 0x9B.
For CRC-8/CDMA2000, RefIn is No and RefOut is No.
CRC-8/LTE uses the same polynomial (0x9B), which is the usual source of mix-ups — matching the polynomial alone does not reproduce CRC-8/CDMA2000. The two models differ in initial value, so a port from one to the other needs those fields checked explicitly, not just the poly.