crc16-ccitt C++代码
时间: 2023-07-30 22:06:18 浏览: 219
crc16-ccitt C语言代码
4星 · 用户满意度95%
以下是一个简单的C++实现CRC16-CCITT的代码示例:
```c++
#include <iostream>
#include <cstdint>
#include <cstring>
uint16_t crc16_ccitt(const uint8_t* data, size_t length)
{
const uint16_t polynomial = 0x1021;
uint16_t crc = 0xFFFF;
for (size_t i = 0; i < length; ++i)
{
crc ^= (uint16_t)(data[i] << 8);
for (int j = 0; j < 8; ++j)
{
if (crc & 0x8000)
{
crc = (crc << 1) ^ polynomial;
}
else
{
crc <<= 1;
}
}
}
return crc;
}
int main()
{
const char* message = "Hello, world!";
uint16_t crc = crc16_ccitt((const uint8_t*)message, std::strlen(message));
std::cout << "CRC16-CCITT: 0x" << std::hex << crc << std::endl;
return 0;
}
```
在运行此代码时,它将输出计算出的CRC16-CCITT值。请注意,此代码假定输入数据的字节顺序为大端。如果您的系统使用小端字节顺序,请相应地进行更改。
阅读全文