23. 钛极OS之CRC

钛极OS之CRC

 

  循环冗余校验(Cyclic Redundancy Check, CRC)是一种根据网络数据包或电脑文件等数据产生简短固定位数校验码的一种散列函数,主要用来检测或校验数据传输或者保存后可能出现的错误, 具体请参考https://baike.baidu.com/item/CRC/1453359https://en.wikipedia.org/wiki/Cyclic_redundancy_check

  TiJOS Framework中提供了CRC8, CRC16校验码运算。

 

  Java包

  tijos.framework.util

 

说明
CRC16_IBMIBM标准, 基于多项式X^16 + X^15 + X^2 + 1
CRC8单总线标准, 基于多项工 X^8 + X^5 + X^4 + 1
CRC16_CCITT_FALSECCITT FALSE标准,基于多项式X^16 + X^15 + X^2 + 1

  CRC8

  CRC8 校验码算法, 主要方法如下:

 

方法说明
int compute (byte dataToCrc [], int seed)对数组进行CRC计算,seed为初始值
int compute (byte dataToCrc [], int off, int len, int seed)对数组从off偏移开始len长度数据进行CRC计算,seed为初始值

  例程:
  1. <font size="3">byte [] input = new byte[]{1,2,3,4,5,6,7,8};
  2. int crc8 = CRC8.compute(input, 0);</font>
复制代码  CRC16校验码

  根据CRC16 多项式的不同, CRC16支持多种标准,

  相关类如下:

 
说明
CRC16 _IBMBM标准
CRC16_CCITT_FALSECCITT FALSE标准

 

  CRC16支持分段数据计算, 可通过update将数据进行连续处理,并通过getValue获取CRC值。

  主要方法如下:

 

方法说明
void update(byte[] b)对数组进行CRC16运算
void update(byte[] b, int off, int len)对数组off开始len长度数据进行CRC16运算
int getValue( )获取CRC16结果
 

  例程:

  1. <font size="3">byte [] input = new byte[]{1,2,3,4,5,6,7,8};
  2. CRC16_IBM crc16 = new CRC16_IBM();
  3. crc16.update(input);
  4. int crc = crc16.getValue(); //获取CRC16结果 </font>
复制代码

 

  更多详细介绍请见钛云物联官网:www.tijos.net
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值