Skip to main content
CRC Calc

CRC-16 / CDMA2000

Width16-bitRefInNoRefOutNo

Need custom parameters? Open in full calculator

Standard test string

Result

0x4C06

Similar CRC Algorithms

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.

CRC Lookup Table

0x00000xC8670x58A90x90CE0xB1520x79350xE9FB0x219C0xAAC30x62A40xF26A0x3A0D0x1B910xD3F60x43380x8B5F
0x9DE10x55860xC5480x0D2F0x2CB30xE4D40x741A0xBC7D0x37220xFF450x6F8B0xA7EC0x86700x4E170xDED90x16BE
0xF3A50x3BC20xAB0C0x636B0x42F70x8A900x1A5E0xD2390x59660x91010x01CF0xC9A80xE8340x20530xB09D0x78FA
0x6E440xA6230x36ED0xFE8A0xDF160x17710x87BF0x4FD80xC4870x0CE00x9C2E0x54490x75D50xBDB20x2D7C0xE51B
0x2F2D0xE74A0x77840xBFE30x9E7F0x56180xC6D60x0EB10x85EE0x4D890xDD470x15200x34BC0xFCDB0x6C150xA472
0xB2CC0x7AAB0xEA650x22020x039E0xCBF90x5B370x93500x180F0xD0680x40A60x88C10xA95D0x613A0xF1F40x3993
0xDC880x14EF0x84210x4C460x6DDA0xA5BD0x35730xFD140x764B0xBE2C0x2EE20xE6850xC7190x0F7E0x9FB00x57D7
0x41690x890E0x19C00xD1A70xF03B0x385C0xA8920x60F50xEBAA0x23CD0xB3030x7B640x5AF80x929F0x02510xCA36
0x5E5A0x963D0x06F30xCE940xEF080x276F0xB7A10x7FC60xF4990x3CFE0xAC300x64570x45CB0x8DAC0x1D620xD505
0xC3BB0x0BDC0x9B120x53750x72E90xBA8E0x2A400xE2270x69780xA11F0x31D10xF9B60xD82A0x104D0x80830x48E4
0xADFF0x65980xF5560x3D310x1CAD0xD4CA0x44040x8C630x073C0xCF5B0x5F950x97F20xB66E0x7E090xEEC70x26A0
0x301E0xF8790x68B70xA0D00x814C0x492B0xD9E50x11820x9ADD0x52BA0xC2740x0A130x2B8F0xE3E80x73260xBB41
0x71770xB9100x29DE0xE1B90xC0250x08420x988C0x50EB0xDBB40x13D30x831D0x4B7A0x6AE60xA2810x324F0xFA28
0xEC960x24F10xB43F0x7C580x5DC40x95A30x056D0xCD0A0x46550x8E320x1EFC0xD69B0xF7070x3F600xAFAE0x67C9
0x82D20x4AB50xDA7B0x121C0x33800xFBE70x6B290xA34E0x28110xE0760x70B80xB8DF0x99430x51240xC1EA0x098D
0x1F330xD7540x479A0x8FFD0xAE610x66060xF6C80x3EAF0xB5F00x7D970xED590x253E0x04A20xCCC50x5C0B0x946C

CRC Source Code

/* 
 * Model: CRC-16 / CDMA2000 (16-bit)
 * Poly: 0xC867, Init: 0xFFFF, XorOut: 0x0000
 * CRC Table C Source Code & Lookup Table Generator
 */
#include <stdint.h>
#include <stddef.h>

const uint16_t crc_table[256] = {
  0x0000, 0xC867, 0x58A9, 0x90CE, 0xB152, 0x7935, 0xE9FB, 0x219C, 
  0xAAC3, 0x62A4, 0xF26A, 0x3A0D, 0x1B91, 0xD3F6, 0x4338, 0x8B5F, 
  0x9DE1, 0x5586, 0xC548, 0x0D2F, 0x2CB3, 0xE4D4, 0x741A, 0xBC7D, 
  0x3722, 0xFF45, 0x6F8B, 0xA7EC, 0x8670, 0x4E17, 0xDED9, 0x16BE, 
  0xF3A5, 0x3BC2, 0xAB0C, 0x636B, 0x42F7, 0x8A90, 0x1A5E, 0xD239, 
  0x5966, 0x9101, 0x01CF, 0xC9A8, 0xE834, 0x2053, 0xB09D, 0x78FA, 
  0x6E44, 0xA623, 0x36ED, 0xFE8A, 0xDF16, 0x1771, 0x87BF, 0x4FD8, 
  0xC487, 0x0CE0, 0x9C2E, 0x5449, 0x75D5, 0xBDB2, 0x2D7C, 0xE51B, 
  0x2F2D, 0xE74A, 0x7784, 0xBFE3, 0x9E7F, 0x5618, 0xC6D6, 0x0EB1, 
  0x85EE, 0x4D89, 0xDD47, 0x1520, 0x34BC, 0xFCDB, 0x6C15, 0xA472, 
  0xB2CC, 0x7AAB, 0xEA65, 0x2202, 0x039E, 0xCBF9, 0x5B37, 0x9350, 
  0x180F, 0xD068, 0x40A6, 0x88C1, 0xA95D, 0x613A, 0xF1F4, 0x3993, 
  0xDC88, 0x14EF, 0x8421, 0x4C46, 0x6DDA, 0xA5BD, 0x3573, 0xFD14, 
  0x764B, 0xBE2C, 0x2EE2, 0xE685, 0xC719, 0x0F7E, 0x9FB0, 0x57D7, 
  0x4169, 0x890E, 0x19C0, 0xD1A7, 0xF03B, 0x385C, 0xA892, 0x60F5, 
  0xEBAA, 0x23CD, 0xB303, 0x7B64, 0x5AF8, 0x929F, 0x0251, 0xCA36, 
  0x5E5A, 0x963D, 0x06F3, 0xCE94, 0xEF08, 0x276F, 0xB7A1, 0x7FC6, 
  0xF499, 0x3CFE, 0xAC30, 0x6457, 0x45CB, 0x8DAC, 0x1D62, 0xD505, 
  0xC3BB, 0x0BDC, 0x9B12, 0x5375, 0x72E9, 0xBA8E, 0x2A40, 0xE227, 
  0x6978, 0xA11F, 0x31D1, 0xF9B6, 0xD82A, 0x104D, 0x8083, 0x48E4, 
  0xADFF, 0x6598, 0xF556, 0x3D31, 0x1CAD, 0xD4CA, 0x4404, 0x8C63, 
  0x073C, 0xCF5B, 0x5F95, 0x97F2, 0xB66E, 0x7E09, 0xEEC7, 0x26A0, 
  0x301E, 0xF879, 0x68B7, 0xA0D0, 0x814C, 0x492B, 0xD9E5, 0x1182, 
  0x9ADD, 0x52BA, 0xC274, 0x0A13, 0x2B8F, 0xE3E8, 0x7326, 0xBB41, 
  0x7177, 0xB910, 0x29DE, 0xE1B9, 0xC025, 0x0842, 0x988C, 0x50EB, 
  0xDBB4, 0x13D3, 0x831D, 0x4B7A, 0x6AE6, 0xA281, 0x324F, 0xFA28, 
  0xEC96, 0x24F1, 0xB43F, 0x7C58, 0x5DC4, 0x95A3, 0x056D, 0xCD0A, 
  0x4655, 0x8E32, 0x1EFC, 0xD69B, 0xF707, 0x3F60, 0xAFAE, 0x67C9, 
  0x82D2, 0x4AB5, 0xDA7B, 0x121C, 0x3380, 0xFBE7, 0x6B29, 0xA34E, 
  0x2811, 0xE076, 0x70B8, 0xB8DF, 0x9943, 0x5124, 0xC1EA, 0x098D, 
  0x1F33, 0xD754, 0x479A, 0x8FFD, 0xAE61, 0x6606, 0xF6C8, 0x3EAF, 
  0xB5F0, 0x7D97, 0xED59, 0x253E, 0x04A2, 0xCCC5, 0x5C0B, 0x946C
};

uint16_t calculate_crc(const uint8_t *data, size_t length) {
    uint16_t crc = 0xFFFF;
    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 >> 8) ^ data[i]);
        crc = (crc << 8) ^ crc_table[idx];
        #endif
    }
    return crc ^ 0x0000;
}

About CRC-16/CDMA2000

CRC-16/CDMA2000 is a 16-bit CRC used in CDMA2000 mobile systems.

CRC-16/CDMA2000 is a 16-bit CRC model defined by polynomial 0xC867, an initial register value of 0xFFFF, and final XOR 0x0000. 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.

Standard test vector

CRC implementations are commonly verified with the ASCII input 123456789.

Input format
ASCII
Input
123456789
Expected CRC
0x4C06
Residue
0x0000

Model characteristics

A model is identified by its complete parameter set, not its polynomial alone.

Bit order
Normal
Register start
0xFFFF
Final XOR
0x0000
Published check
0x4C06

Implementation checks for CRC-16/CDMA2000

  • Use a 16-bit register and polynomial 0xC867.
  • Initialize the register to 0xFFFF and use XorOut 0x0000 exactly as listed; changing either value defines a different model.
  • Verify the implementation with ASCII “123456789”; the expected result is 0x4C06.

Continue with the main calculator, browse the algorithm catalog, compare models in the Algorithm Reference section, or generate a lookup table.

Complete CRC-16/CDMA2000 parameters

CRC parameter guide
ParameterValueMeaningReference
Width16 bitsCRC register and result widthRead guide
Poly0xC867Generator polynomial without the leading termRead guide
Init0xFFFFInitial CRC register valueRead guide
RefInNoReflect each input byte before processingRead guide
RefOutNoReflect the register before XOR OutRead guide
XorOut0x0000Final value XORed with the CRC registerRead guide
Check0x4C06CRC of ASCII “123456789”Read guide
Residue0x0000Expected residue after appending a valid CRCRead guide
AliasesCDMA2000 CRC-16

Where CRC-16/CDMA2000 is used

  • 01CDMA2000
  • 02Mobile networks
  • 03Telecommunications

CRC-16/CDMA2000 FAQ

What is the check value for CRC-16/CDMA2000?

For the standard ASCII test input 123456789, the check value of CRC-16/CDMA2000 is 0x4C06.

What polynomial does CRC-16/CDMA2000 use?

CRC-16/CDMA2000 uses the 16-bit polynomial 0xC867.

Does CRC-16/CDMA2000 use reflected input and output?

For CRC-16/CDMA2000, RefIn is No and RefOut is No.

What is CRC-16/CDMA2000 commonly confused with?

The closest published model by parameter overlap is CRC-16/CMS, differing from CRC-16/CDMA2000 in polynomial.