登录  注册 退出 English
鼎恩光彩LED显示屏{www.deanled.cn}
400-886-2386
  1. 首页 > 资料下载 > 二次开发

JAVA语言CRC16校验算法

JAVA语言算法:----------------------------------import java.io.*;import java.util.*;class MyCla...
作者:小编 上传时间:2019-03-19 浏览量:504
文件下载列表 :
详细介绍

JAVA语言算法:

----------------------------------

import java.io.*;

import java.util.*;

class MyClass{

char crc16 (int data [],int size){

char crc = 0x0;

int i,j;

int data t ;

_

i = j = 0;

if (data == null) return 0;

for (j=0;j<size;j++){

data_t = data [j];

crc = (char) ( (data_t&0xFF) ^ (crc));

for (i=0;i<8;i++){

if ( (crc&0x1)==1){

crc = (char) ( (crc>>1) ^ (0xa001));

}else{

crc >>= 1;

}

}

}

return (char) ( (crc>>8) | (crc<<8));

}

}

public class CRC16{

public static void main (String arg []){

int a []={0x01,0x03,0x11,0xFF};

char value,i,m;

int j;

MyClass crc=new MyClass ();

value = crc.crc16 (a,a.length);

System.out.print (" ( 二进制 )value=");

for (i=0;i<16;i++){

j= ( (value& (0x8000>>i))!=0)?1:0;

System.out.print (j);

}

System.out.println ();

System.out.print (" (十六进制)value=");

for (i=3;i>=0;i--){

m= (char) ( ( (value>> (i*4))& (0x000F)));

if ( (m>=0)&& (m<=9)){

m +='0';

}else if ( (m>=10)&& (m<=15)){

m= (char) (m-10+'A');

}

System.out.print (m);

if ( (i%2)==0){

System.out.print (" ");

if (i==0)break;

}

}

}

}


---------------------------------------------------------



image.png



随便看看