标签: crc

如何确定使用哪种CRC?

如果我有一定数量的字节要串行传输,我如何确定使用哪个CRC(CRC8,CRC16等,基本上是多少位CRC?)并且仍然有高错误检测百分比?有这个公式吗?

crc

5
推荐指数
2
解决办法
2888
查看次数

重命名文件会改变其CRC吗?

如上所述,重命名文件会改变CRC吗?我已经检查过纯文本文件而它没有.这适用于所有格式的所有文件吗?

crc

5
推荐指数
1
解决办法
1732
查看次数

两个数据块可能产生相同CRC64值的可能性有多大?

我有一个缓存应用程序,它使用CRC64值来确保数据完整性.我正在考虑添加一个额外的字段,一个时间戳来传递各种缓存服务器之间的数据,并进行比较以查看数据是否已更改.

但是,这需要协议更改.虽然这不是什么大不了的事,但我已经有了一个CRC64可以用作指示某些事情发生了变化.

有谁知道产生相同CRC64的两个数据块周围的统计数据?如果没有,我怎么能计算它或估计它的可能性?

crc crc64

5
推荐指数
1
解决办法
3476
查看次数

消息奇偶校验

有人可以帮助我在C#中实现这一系列的计算吗? 在此输入图像描述

c# binary crc algebra polynomial-math

5
推荐指数
1
解决办法
1320
查看次数

使用C预处理器计算8位CRC?

我正在为一个只有几个字节RAM的小型8位微控制器编写代码.它有一个简单的工作,即传输7个16位字,然后传输这些字的CRC.在编译时选择单词的值.CRC具体是"字0到字6的除法的余数,因为无符号数除以多项式x ^ 8 +x²+ x + 1(初始值0xFF)."

是否可以使用C预处理器在编译时计算这些字节的CRC ?

#define CALC_CRC(a,b,c,d,e,f,g)    /* what goes here? */

#define W0    0x6301
#define W1    0x12AF
#define W2    0x7753
#define W3    0x0007
#define W4    0x0007
#define W5    0x5621
#define W6    0x5422
#define CRC   CALC_CRC(W0, W1, W2, W3, W4, W5, W6)
Run Code Online (Sandbox Code Playgroud)

c microcontroller crc c-preprocessor

5
推荐指数
1
解决办法
3786
查看次数

CRC8,CRC16和CRC32之间有什么不同?

我想知道差异以及如何为不同的crc选择多项式生成器?

在一些C代码中,他们查找表来计算crc,其中一些是通过xor真值表来完成的.但在这两种情况下它都是1byte数据阵列.令人困惑.有人可以解释一下吗?

谢谢.!

crc

5
推荐指数
0
解决办法
5156
查看次数

CRC16 ISO 13239实施

我正在尝试在C#中实现Crc16.我已经尝试过很多不同的实现,但是大多数都给了我不同的值.以下是我已经使用过的一些代码.

    private static int POLYNOMIAL = 0x8408;
    private static int PRESET_VALUE = 0xFFFF;

    public static int crc16(byte[] data)
    {
        int current_crc_value = PRESET_VALUE;
        for (int i = 0; i < data.Length; i++)
        {
            current_crc_value ^= data[i] & 0xFF;
            for (int j = 0; j < 8; j++)
            {
                if ((current_crc_value & 1) != 0)
                {
                    current_crc_value = (current_crc_value >> 1) ^ POLYNOMIAL;
                }
                else
                {
                    current_crc_value = current_crc_value >> 1;
                }
            }
        }
        current_crc_value = ~current_crc_value;

        return current_crc_value & 0xFFFF; …
Run Code Online (Sandbox Code Playgroud)

c# crc crc16

5
推荐指数
1
解决办法
2万
查看次数

CCITT CRC 16位起始值0xffff

我需要为作为参数传递的数据和长度计算CCITT 16位校验和值.如果我用测试数据"123456789"填充我的数组TempStr,使用多项式0x8408,其长度不包括空终止字符,我得到结果字符串6E90(十六进制).与null终止字符一起,我得到907A.当我将多项式换算为0x1201时,我得到带有和不带终止字符的结果29E2(十六进制)和EFE8(十六进制).

我的问题是:我是否需要使用或不使用空终止字符来计算CRC以获得正确的值?我在算法中使用多项式0x1201或反向多项式0x8408吗?给定数据0x29B1的CRC是否正确?我需要正确的值来确定函数是否正常工作.算法是否正确计算此特定CRC类型?wData =(unsigned int)0xff&*pData ++ ?? 如果有人可以向我解释有什么问题以及如何解决我的问题我会非常感激.谢谢

这是使用和显示calculate_CRC16函数的代码:

CHAR_t TestStr[] = {"123456789"};
unsigned short CrcTest = calculate_CRC16(TestStr,sizeof(TestStr)-1);
QString CrcDisplay = QString("CrcTest : %1").arg(CrcTest);
ui->txtDebug->setText(CrcDisplay);
Run Code Online (Sandbox Code Playgroud)

这是calculate_CRC16函数:

UINT16_t MainWindow::calculate_CRC16(CHAR_t* pData, UINT16_t wLength)
{

  UCHAR_t i;
  UINT16_t wData;
  UINT16_t wCrc = 0xffff;

  if (wLength == 0)
    return (~wCrc);

  do
  {
    for (i=0, wData=(unsigned int)0xff & *pData++; i < 8; i++, wData >>= 1)
    {
        if ((wCrc & 0x0001) ^ (wData & 0x0001))
            wCrc = (wCrc >> 1) ^ CRC_POLY;
        else  wCrc >>= …
Run Code Online (Sandbox Code Playgroud)

c++ checksum crc crc16

5
推荐指数
1
解决办法
2万
查看次数

如何在PHP HEX中计算CRC16 CCITT?

我正在尝试使用PHP CRC16 CCITT函数来计算校验和。

设备向我发送了包含校验和的数据包:

10 00 00 00 00 00 00 00 12 51 09 08 00 18 00 04 02 14 00 0c 00 0c 02 1c 00 02 00 00 00 00 00 00 00 a0 77

校验和位于末尾: a0 77

我试过使用

如何在PHP中计算CRC16

将C转换为PHP以实现CRC16功能

没有成功,CRC 16计算返回:E6 F4而不是 a0 77

查找时,我返回了正确的十六进制信息:

100000000000000012510908001800040214000c000c021c0002000000000000

在网站http://www.lammertbies.nl/comm/info/crc-calculation.html上,但我无法复制它。(确保将输入类型选择为十六进制)

您能帮我弄清楚如何获取十六进制值字符串的crc16 CCITT吗

100000000000000012510908001800040214000c000c021c0002000000000000

我在寻找校验和 a0 77

php hex crc crc16

5
推荐指数
1
解决办法
3381
查看次数

E/libEGL:缓存文件CRC校验失败

在我的应用程序中,MainActivity包含许多按钮,单击其中使用图像创建另一个活动.点击图片是一个简单的动画缩放.并且存在一个问题:频繁点击崩溃活动(不是应用程序)的两个图像都有错误

E/libEGL: cache file failed CRC check
Run Code Online (Sandbox Code Playgroud)

我比较了所有图像,它们的大小和分辨率大致相同.它们都是jpg格式.但错误只会增加两个.此外,错误不会发生在所有物理设备上(我测试了三个),但仅限于xiaomi redmi note 2

我用Google搜索了这个错误并发现了这个:

// Check the file magic and CRC
    size_t cacheSize = fileSize - headerSize;
    if (memcmp(buf, cacheFileMagic, 4) != 0) {
        ALOGE("cache file has bad mojo");
        close(fd);
        return;
    }
    uint32_t* crc = reinterpret_cast<uint32_t*>(buf + 4);
    if (crc32c(buf + headerSize, cacheSize) != *crc) {
        ALOGE("cache file failed CRC check");
        close(fd);
        return;
    }
Run Code Online (Sandbox Code Playgroud)

来自openGL lib EGL

这个错误意味着什么以及如何对抗它?

android opengl-es crc egl

5
推荐指数
0
解决办法
2255
查看次数

标签 统计

crc ×10

crc16 ×3

c# ×2

algebra ×1

android ×1

binary ×1

c ×1

c++ ×1

c-preprocessor ×1

checksum ×1

crc64 ×1

egl ×1

hex ×1

microcontroller ×1

opengl-es ×1

php ×1

polynomial-math ×1