我正在尝试将CRC16错误检测添加到Motorola HCS08微控制器应用程序中.但是,我的校验和不匹配.一个在线CRC计算器提供了我在PC程序中看到的结果和我在微观上看到的结果.
它调用micro的结果"XModem"和PC的结果"Kermit".
这两个古老的协议指定使用CRC16的方式有什么区别?
我正在使用一个小的FAT16文件系统,我想为存储配置信息的indidual XML文件生成CRC值.如果数据发生变化或被破坏,我希望能够检查CRC以确定文件仍处于其原始状态.
问题是,如何在不更改文件本身的CRC值的情况下将CRC值放入文件中?我可以想到几个解决方案,但我认为必须有一个相当标准的解决方案来解决这个问题.
我试图确定我的crc与" 理想的 "32位crc的比较.
所以我运行我的crc超过100万个完全随机的数据样本并收集了碰撞量,我想将这个数字与我对" 理想 "crc所期望的碰撞数进行比较.
有谁知道如何计算" 理想 "32位crc 的预期碰撞?
我试图理解CRC,我对如何计算'除数'感到困惑.
在维基百科上的示例中,除数为11(1011),输入为11010011101100
11010011101100 000 <--- input left shifted by 3 bits
1011 <--- divisor (4 bits) = x³+x+1
------------------
01100011101100 000 <--- result
Run Code Online (Sandbox Code Playgroud)
除数是如何计算的?在这个例子中(x³+ x + 1)x是2?2来自哪里?
在运行APK扩展文件样本时,我只是滑雪检查CRC32以避免crc bug算法,它的工作非常好!! 但是,虽然XAPK文件验证显示正确的下载数据信息99%!!,如何避免这种情况并通过硬编码查看完整的100%?


我目前正在开展一个项目,有一个嵌入式系统通过无线电将数据发送到PC.数据包最后获得crc16校验和,并根据此算法计算:
uint16_t crc16 (const uint8_t * buffer, uint32_t size) {
uint16_t crc = 0xFFFF;
if (buffer && size)
while (size--)
{
crc = (crc >> 8) | (crc << 8);
crc ^= *buffer++;
crc ^= ((unsigned char) crc) >> 4;
crc ^= crc << 12;
crc ^= (crc & 0xFF) << 5;
}
return crc;
}
Run Code Online (Sandbox Code Playgroud)
现在我正在寻找Java中的等价物.我已经在这里找到了一个好的:http: //introcs.cs.princeton.edu/java/51data/CRC16CCITT.java.html
public class CRC16CCITT {
public static void main(String[] args) {
int crc = 0xFFFF; // initial value
int polynomial = …Run Code Online (Sandbox Code Playgroud) 我知道System.Security.Cryptography中存在SHA1和SHA256的实现.
有内置可以计算CRC哈希值的东西吗?
我是一名电子工程师,并没有发现从纯粹的数学角度考虑CRC非常重要.但是,我有以下问题:
当我们计算CRC时,为什么要在消息中添加n个零,n是生成多项式的次数?我已经在modulo-2 long division以及CRC的硬件实现中看到了这一点
为什么我们希望生成多项式可以被(x + 1)整除?
为什么我们希望生成多项式不能被x整除?
在Edward Kmett关于CRC的文章中,它有以下推导:
CRC(ab) = -- definition of CRC
crc(INIT,ab) + FINAL = -- linearity
crc(INIT,a0^n + 0^m b) + FINAL = -- additive homomorphism
crc(INIT,a0^n) + crc(0,0^nb) + FINAL = -- zero blindness
crc(INIT,a0^n) + crc(0,b) + FINAL -- definition of crc
crc(crc(INIT,a),0^n) + crc(0,b) + FINAL -- additive homomorphism
crc(crc(INIT,0^m)+crc(0,a),0^n) + crc(0,b) + FINAL
Run Code Online (Sandbox Code Playgroud)
世界上有什么a0^n和0^m b?这些权力是这样的a * pow(0, n)吗?如果是这样,不会0 ^ n = 0?或者XOR?还有别的吗?这个空间有意义吗?我不明白为什么,例如:
ab = a0^n + 0^m b
Run Code Online (Sandbox Code Playgroud)
为什么0^m …
在为计算机网络课程学习时,教授谈到了示例代码中2个有效代码字之间的汉明距离.我已经读过关于汉明距离的内容,从描述两个字符串之间的距离差异的角度来看它是有意义的.例如:
Code Word 1 = 10110
Run Code Online (Sandbox Code Playgroud)
发送方发送代码字1,并且引入了错误,接收方接收10100.因此您看到第4位已损坏.这将导致汉明距离为1,因为:
Valid Code Word: 10110
Error Code Word: 10100
-----
XOR 00010
Run Code Online (Sandbox Code Playgroud)
2个字符串的XOR结果为1,因此汉明距离为1.我理解它到那一点.但是教授要求:
我有点困惑,想知道是否有人可以提供帮助.谢谢.