多项式一(0x31)正序 | |
多项式二(0x07)正序 | |
多项式三(0x5e)正序 | |
多项式一(0x31)反序 | |
多项式二(0x07)反序 | |
多项式三(0x5e)反序 | |
输入字节数(16进制) | |
输入字节数(10进制) |
CTRL+A :选中全部,CTRL+C:复制,CTRL+V:粘贴。 【使用必读】【本站支持微信扫码登录了】【除了计算器还有这些功能可用】
分类: 校验计算 标签:16进制CRC多项式异或校验循环冗余 工具ID:212 阅读:4866 收藏
输入连续或空格隔开的十六进制字符串后点击计算,可求其10进制累加值、16进制累加值、校验字节及其校验补码值。系统默认两个字符表示一个字节,所以必须输入偶数个字符才能进行计算。
本计算器能快速计算出三个多项式的正序和反序CRC8异或校验结果。
1、 CRC8标准生成多项式
多项式一:x8+x5+x4+1 0x31(0x131)
多项式二:x8+x2+x1+1 0x07(0x107)
多项式三:x8+x6+x4+x3+x2+x1 0x5E(0x15E)
注:由于多项式的最高为都为1,并且在代码的crc8计算中,最高位也是不使用的,所以在多项式记录时都去掉了最高位。
以多项式一为例,代码示例如下:
2、正序异或计算示意代码:
unsigned char crc_high_first(unsigned char *ptr,unsigned char len)
{
unsigned char i;
unsigned char crc=0x00;/*计算的初始crc值*/
while(len--)
{
crc^=*ptr++;/*每次先与需要计算的数据异或,计算完指向下一数据*/
for(i=8;i>0;--i)/*下面这段计算过程与计算一个字节crc一样*/
{
if(crc&0x80)
crc=(crc<<1)^0x31;
else
crc=(crc<<1);
}
}
return crc;
}
3、反序异或计算示意代码如下:
unsigned char crc_high_first(unsigned char *ptr,unsigned char len)
{
unsigned char i;
unsigned char crc=0x00;/*计算的初始crc值*/
while(len--)
{
/*同样需要计算8次*/
for(i=8;i>0;--i)
{
if(crc&0x01)/*反序异或变成判断最低位是否为1*/
/*数据变成往右移位了*/
/*计算的多项式从0x31(00110001)变成了0x8C(10001100)*/
/*多项式值,原来的最高位变成了最低位,原来的最低位变成最高位,8位数据高低位交换一下位置*/
crc=(crc>>1)^0x8C;
else
crc=(crc>>1);
}
}
return crc;
}
相关计算器:
1)根据(校验码)反查CRC8(累加和,循环冗余)校验初始参数在线计算器
2)16进制(CRC8)(多项式异或)校验(2),循环冗余校验在线计算器
3)16进制(CRC8)(多项式异或)校验(1),循环冗余校验在线计算器
4)16进制(CRC8)(累加和,LRC校验),ASCII码校验和在线计算器
6)LRC纵向冗余校验码,Modbus通讯ASCII模式LRC校验码在线计算器
7)16进制(CRC8)校验码(附加算法)加密/解密在线计算器
相关推荐
- 分类
- 校验计算 29
- 文字处理 10
- 电子电路 100
- 颜色计算 6
- 时间日期 18
- 数学计算 17
- 统计概率 58
- 方程代数 24
- 复数向量 15
- 对数分数 30
- 指数开方 9
- 平面几何 34
- 物理计算 52
- 立体几何 53
- 工程设计 219
- 材料报价 40
- 标准规程 8
- 单位转换 42
- 生活健康 137
- 金融理财 37
- 其他工具 8
- 进制数字 26
- 代码工具 29
- 三角函数 13
- 点阵字模 17
- 位运算 4
- 矩阵多项式 22