Skip to main content
CRC Calc

CRC-16 / DECT-X

Width16-bitRefInNoRefOutNo

Need custom parameters? Open in full calculator

Standard test string

Result

0x007F

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

0x00000x05890x0B120x0E9B0x16240x13AD0x1D360x18BF0x2C480x29C10x275A0x22D30x3A6C0x3FE50x317E0x34F7
0x58900x5D190x53820x560B0x4EB40x4B3D0x45A60x402F0x74D80x71510x7FCA0x7A430x62FC0x67750x69EE0x6C67
0xB1200xB4A90xBA320xBFBB0xA7040xA28D0xAC160xA99F0x9D680x98E10x967A0x93F30x8B4C0x8EC50x805E0x85D7
0xE9B00xEC390xE2A20xE72B0xFF940xFA1D0xF4860xF10F0xC5F80xC0710xCEEA0xCB630xD3DC0xD6550xD8CE0xDD47
0x67C90x62400x6CDB0x69520x71ED0x74640x7AFF0x7F760x4B810x4E080x40930x451A0x5DA50x582C0x56B70x533E
0x3F590x3AD00x344B0x31C20x297D0x2CF40x226F0x27E60x13110x16980x18030x1D8A0x05350x00BC0x0E270x0BAE
0xD6E90xD3600xDDFB0xD8720xC0CD0xC5440xCBDF0xCE560xFAA10xFF280xF1B30xF43A0xEC850xE90C0xE7970xE21E
0x8E790x8BF00x856B0x80E20x985D0x9DD40x934F0x96C60xA2310xA7B80xA9230xACAA0xB4150xB19C0xBF070xBA8E
0xCF920xCA1B0xC4800xC1090xD9B60xDC3F0xD2A40xD72D0xE3DA0xE6530xE8C80xED410xF5FE0xF0770xFEEC0xFB65
0x97020x928B0x9C100x99990x81260x84AF0x8A340x8FBD0xBB4A0xBEC30xB0580xB5D10xAD6E0xA8E70xA67C0xA3F5
0x7EB20x7B3B0x75A00x70290x68960x6D1F0x63840x660D0x52FA0x57730x59E80x5C610x44DE0x41570x4FCC0x4A45
0x26220x23AB0x2D300x28B90x30060x358F0x3B140x3E9D0x0A6A0x0FE30x01780x04F10x1C4E0x19C70x175C0x12D5
0xA85B0xADD20xA3490xA6C00xBE7F0xBBF60xB56D0xB0E40x84130x819A0x8F010x8A880x92370x97BE0x99250x9CAC
0xF0CB0xF5420xFBD90xFE500xE6EF0xE3660xEDFD0xE8740xDC830xD90A0xD7910xD2180xCAA70xCF2E0xC1B50xC43C
0x197B0x1CF20x12690x17E00x0F5F0x0AD60x044D0x01C40x35330x30BA0x3E210x3BA80x23170x269E0x28050x2D8C
0x41EB0x44620x4AF90x4F700x57CF0x52460x5CDD0x59540x6DA30x682A0x66B10x63380x7B870x7E0E0x70950x751C

CRC Source Code

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

const uint16_t crc_table[256] = {
  0x0000, 0x0589, 0x0B12, 0x0E9B, 0x1624, 0x13AD, 0x1D36, 0x18BF, 
  0x2C48, 0x29C1, 0x275A, 0x22D3, 0x3A6C, 0x3FE5, 0x317E, 0x34F7, 
  0x5890, 0x5D19, 0x5382, 0x560B, 0x4EB4, 0x4B3D, 0x45A6, 0x402F, 
  0x74D8, 0x7151, 0x7FCA, 0x7A43, 0x62FC, 0x6775, 0x69EE, 0x6C67, 
  0xB120, 0xB4A9, 0xBA32, 0xBFBB, 0xA704, 0xA28D, 0xAC16, 0xA99F, 
  0x9D68, 0x98E1, 0x967A, 0x93F3, 0x8B4C, 0x8EC5, 0x805E, 0x85D7, 
  0xE9B0, 0xEC39, 0xE2A2, 0xE72B, 0xFF94, 0xFA1D, 0xF486, 0xF10F, 
  0xC5F8, 0xC071, 0xCEEA, 0xCB63, 0xD3DC, 0xD655, 0xD8CE, 0xDD47, 
  0x67C9, 0x6240, 0x6CDB, 0x6952, 0x71ED, 0x7464, 0x7AFF, 0x7F76, 
  0x4B81, 0x4E08, 0x4093, 0x451A, 0x5DA5, 0x582C, 0x56B7, 0x533E, 
  0x3F59, 0x3AD0, 0x344B, 0x31C2, 0x297D, 0x2CF4, 0x226F, 0x27E6, 
  0x1311, 0x1698, 0x1803, 0x1D8A, 0x0535, 0x00BC, 0x0E27, 0x0BAE, 
  0xD6E9, 0xD360, 0xDDFB, 0xD872, 0xC0CD, 0xC544, 0xCBDF, 0xCE56, 
  0xFAA1, 0xFF28, 0xF1B3, 0xF43A, 0xEC85, 0xE90C, 0xE797, 0xE21E, 
  0x8E79, 0x8BF0, 0x856B, 0x80E2, 0x985D, 0x9DD4, 0x934F, 0x96C6, 
  0xA231, 0xA7B8, 0xA923, 0xACAA, 0xB415, 0xB19C, 0xBF07, 0xBA8E, 
  0xCF92, 0xCA1B, 0xC480, 0xC109, 0xD9B6, 0xDC3F, 0xD2A4, 0xD72D, 
  0xE3DA, 0xE653, 0xE8C8, 0xED41, 0xF5FE, 0xF077, 0xFEEC, 0xFB65, 
  0x9702, 0x928B, 0x9C10, 0x9999, 0x8126, 0x84AF, 0x8A34, 0x8FBD, 
  0xBB4A, 0xBEC3, 0xB058, 0xB5D1, 0xAD6E, 0xA8E7, 0xA67C, 0xA3F5, 
  0x7EB2, 0x7B3B, 0x75A0, 0x7029, 0x6896, 0x6D1F, 0x6384, 0x660D, 
  0x52FA, 0x5773, 0x59E8, 0x5C61, 0x44DE, 0x4157, 0x4FCC, 0x4A45, 
  0x2622, 0x23AB, 0x2D30, 0x28B9, 0x3006, 0x358F, 0x3B14, 0x3E9D, 
  0x0A6A, 0x0FE3, 0x0178, 0x04F1, 0x1C4E, 0x19C7, 0x175C, 0x12D5, 
  0xA85B, 0xADD2, 0xA349, 0xA6C0, 0xBE7F, 0xBBF6, 0xB56D, 0xB0E4, 
  0x8413, 0x819A, 0x8F01, 0x8A88, 0x9237, 0x97BE, 0x9925, 0x9CAC, 
  0xF0CB, 0xF542, 0xFBD9, 0xFE50, 0xE6EF, 0xE366, 0xEDFD, 0xE874, 
  0xDC83, 0xD90A, 0xD791, 0xD218, 0xCAA7, 0xCF2E, 0xC1B5, 0xC43C, 
  0x197B, 0x1CF2, 0x1269, 0x17E0, 0x0F5F, 0x0AD6, 0x044D, 0x01C4, 
  0x3533, 0x30BA, 0x3E21, 0x3BA8, 0x2317, 0x269E, 0x2805, 0x2D8C, 
  0x41EB, 0x4462, 0x4AF9, 0x4F70, 0x57CF, 0x5246, 0x5CDD, 0x5954, 
  0x6DA3, 0x682A, 0x66B1, 0x6338, 0x7B87, 0x7E0E, 0x7095, 0x751C
};

uint16_t calculate_crc(const uint8_t *data, size_t length) {
    uint16_t crc = 0x0000;
    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/DECT-X

CRC-16/DECT-X is the companion DECT CRC model with zero final XOR.

CRC-16/DECT-X is a 16-bit CRC model defined by polynomial 0x0589, an initial register value of 0x0000, and final XOR 0x0000. It uses normal, non-reflected input and output processing.

Documented application context for this model includes DECT, Cordless telephony, Wireless protocols. 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
0x007F
Residue
0x0000

Model characteristics

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

Bit order
Normal
Register start
0x0000
Final XOR
0x0000
Published check
0x007F

Implementation checks for CRC-16/DECT-X

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

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

Complete CRC-16/DECT-X parameters

CRC parameter guide
ParameterValueMeaningReference
Width16 bitsCRC register and result widthRead guide
Poly0x0589Generator polynomial without the leading termRead guide
Init0x0000Initial 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
Check0x007FCRC of ASCII “123456789”Read guide
Residue0x0000Expected residue after appending a valid CRCRead guide
AliasesDECT X CRC

Where CRC-16/DECT-X is used

  • 01DECT
  • 02Cordless telephony
  • 03Wireless protocols

CRC-16/DECT-X FAQ

What is the check value for CRC-16/DECT-X?

For the standard ASCII test input 123456789, the check value of CRC-16/DECT-X is 0x007F.

What polynomial does CRC-16/DECT-X use?

CRC-16/DECT-X uses the 16-bit polynomial 0x0589.

Does CRC-16/DECT-X use reflected input and output?

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

What is CRC-16/DECT-X commonly confused with?

CRC-16/DECT-R uses the same polynomial (0x0589), which is the usual source of mix-ups — matching the polynomial alone does not reproduce CRC-16/DECT-X. The two models differ in final XOR value, so a port from one to the other needs those fields checked explicitly, not just the poly.