java crc8_Crc8算法
JavaScript实现:
var orderbuffer = new ArrayBuffer(2) // 计算
var dataView= new Uint8Array(orderbuffer)
dataView[0] = 4
dataView[1] = 8
var checksum = crc8.checksum(dataView)
// "Class" for calculating CRC8 checksums...
function CRC8(polynomial, initial_value) { // constructor takes an optional polynomial type from CRC8.POLY
if (polynomial == null) polynomial = CRC8.POLY.CRC8_CCITT
this.table = CRC8.generateTable(polynomial);
this.initial_value = initial_value;
}
// Returns the 8-bit checksum given an array of byte-sized numbers
CRC8.prototype.checksum = function(byte_array) {
var c = this.initial_value;
for (var i = 0; i < byte_array.length; i++ )
c = this.table[(c ^ byte_array[i]) % 256]
return c;
}
// returns a lookup table byte array given one of the values from CRC8.POLY
CRC8.generateTable =function(polynomial)
{
var csTable = [] // 256 max len byte array
for ( var i = 0; i < 256; ++i ) {
var curr = i
for ( var j = 0; j < 8; ++j ) {
if ((curr & 0x80) !== 0) {
curr = ((curr << 1) ^ polynomial) % 256
} else {
curr = (curr << 1) % 256
}
}
csTable[i] = curr
}
return csTable
}
// This "enum" can be used to indicate what kind of CRC8 checksum you will be calculating
CRC8.POLY = {
CRC8 : 0xd5,
CRC8_CCITT : 0x07,
CRC8_DALLAS_MAXIM : 0x31,
CRC8_SAE_J1850 : 0x1D,
CRC_8_WCDMA : 0x9b,
}
var crc8 = new CRC8();
module.exports = crc8;
java crc8_Crc8算法相关推荐
- Java排序算法:冒泡排序
Java排序算法:冒泡排序 //创建数组并赋值int[] data = new int[] {11,10,55,78,100,111,45,56,79,90,345,1000};for(int i=0 ...
- java python算法_用Python,Java和C ++示例解释的排序算法
java python算法 什么是排序算法? (What is a Sorting Algorithm?) Sorting algorithms are a set of instructions t ...
- JAVA经典算法50题(转)
转载请注明出处:http://blog.csdn.net/l1028386804/article/details/51097928 JAVA经典算法50题 [程序1] 题目:古典问题:有一对兔子, ...
- java经典算法四十题
java经典算法四十题 [程序9]题目:一个数如果恰好等于它的因子之和,这个数就称为 "完数 ".例如6=1+2+3.编程找出1000以内的所有完数. public class W ...
- JVM(3):Java GC算法 垃圾收集器
概述 垃圾收集 Garbage Collection 通常被称为"GC",它诞生于1960年 MIT 的 Lisp 语言,经过半个多世纪,目前已经十分成熟了. jvm 中,程序计数 ...
- java序列化算法透析_Java序列化机制与原理的深入分析
Java序列化算法透析 Serialization(序列化)是一种将对象以一连串的字节描述的过程:反序列化deserialization是一种将这些字节重建成一个对象的过程.Java序列化API提供一 ...
- Java的算法讲解以及案例!
算法是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,java算法就是采用Java语言来实现解决某一问题的清晰指令. 算法的特征: 输入性:有零个或多个外部量作为算法的输入 输出性:算法产生 ...
- 26 Java GC算法 垃圾收集器、标记 -清除算法、复制算法、标记-压缩算法、分代收集算法
26.Java GC算法 垃圾收集器 1.1.1标记 -清除算法 1.1.2复制算法 1.1.3标记-压缩算法 1.1.4分代收集算法 26.Java GC算法 垃圾收集器 概述 垃圾收集 Garba ...
- List精讲(Java版)·算法常用集合处理方法
List精讲(Java版)·算法常用集合处理方法 请仔细查阅每一个注释: import java.util.ArrayList; import java.util.Collections; impor ...
- java经典100例算法题_10道java经典算法题,每一题都能帮你提升java水平!
JAVA经典算法题 [程序1] 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 1.程序分析:兔子 ...
最新文章
- 信息网络传播权保护条例(2006)
- 一个函数统一238个机器学习R包,这也太赞了吧
- 详解华为12种数据采集技术及应用实践
- Oracle创建数据库出错,oracle 10g dbca创建数据库出错 急急急
- 【思维导图】演绎推理和归纳推理基础概念
- 微信网站域名如何做防封和防屏蔽技术
- 考研政治---马克思主义基本原理概论---认识论
- Facebook广告投放有哪些比较好的策略?
- vue2 provide和inject的使用
- 2020最火爆BI产品对比来啦!亿信ABI VS FineBI数据分析谁最行
- Hazel引擎学习(四)
- 如何分发大文件、大文件传输解决方案
- 发现电脑屏幕总是不自动关闭?看看你是否打开了这些程序……
- FPGA交通灯 Verilog Modelsim
- 恶梦护士 asa_敏捷街上的噩梦2:受控敏捷
- atheros有线网卡LINUX驱动,新版Atheros AR81系列有线驱动
- Mysql的两阶段锁协议
- Socket.io之Socket类
- Python 教程之输入输出(1)—— 在 Python 中接受输入
- 移动端js判断手指滑动方向