阅读( 218 ) 我要纠错

代码实例

<HEAD>

<TITLE>CRC16 计算 ——HTML+js</TITLE>

<META http-equiv=Content-Type content="text/html; charset=gb2312">

<META content="MSHTML 6.00.2900.2180" name=FCH>

</HEAD>

<SCRIPT language=JavaScript>

function inttohex(num, size) {

var str, len;

str = num.toString(16); len = str.length;

if(len >= size) else str = str.substr(len - size, size); {

while(size > len++) str = '0' + str;

} return str.toUpperCase();

}

function rehextoint(string) //!<反转 {

var i, str, len; str = '';

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

str += string.substr(14 - i, 2);

return parseInt(str,16);

}

function GetCRCString(crcdatastr, crcinitstr)

{

var i, crc, len;

len = crcdatastr.length * 4;

for(i = 0;

i < (4 - len / 4); i++) crcdatastr += "0"; //!<补 0

crc = rehextoint(crcdatastr) ^ parseInt(crcinitstr, 16);

crc &= (1 << 16) - 1;

for(i = 0; i < len; i++) { if (crc & 1) { crc >>>= 1;

crc ^= parseInt(("A001"), 16);

crc |= (1 << 15); }else crc >>>= 1; }

crc &= (1 << 16) - 1;

return inttohex(crc, 4); }

function HexStringFormat(str) {

var patrn = /[0-9a-fA-F]/; //!<正则表达式

var i, ptr, ch; ptr = "";

for(i = 0;i < str.length;i ++) { ch = str.substr(i, 1);

if(patrn.test(ch)) ptr += ch; } return ptr.toUpperCase(); }

function crc() { var i , str , strcrc;

if (text12.value.length > 0) {

strcrc = "0000"; //!<初值

str = HexStringFormat(text12.value);

text140.value = "";

for(i = 0; i < str.length; i += 4)

strcrc = GetCRCString(str.substr(i, 4), strcrc);

text140.value = inttohex((parseInt(strcrc, 16) ^ parseInt(("0000"), 16)), 4); } }

</SCRIPT>

<BODY>

<table align="center">

<tr>

<td>

马上计算:<br> <textarea cols="100" rows="5" id=text12 title="将需要校验的数据拷贝至文本框内,格式如“AA BB CC”或“AABBCC”,点击计算按钮。 "> 01 00 00 80 00 00 00 00 00 00 FE 02 28 00 A3 06 01 23 00 00 01 1F 00 00 00 00 00 00 04 00 10 00 00 00 00 02 00 00 00 00 02 02 01 00 00 0A 04 00 00 00 D1 F6 B0 EE </textarea><br> <INPUT type=button value="计算" onClick = crc() >CRC16 结果: <input name="text" type=text id=text140 style="color:#F00" value=" " size=19 maxlength=16>

</td>

</tr>

</table>

</BODY>


尝试一下 »

点击“尝试一下”按钮查看在线实例

 <HTML xmlns="http://www.onbonbx.com">

<HEAD>

<TITLE>CRC16 计算 ——HTML+js</TITLE> 

<META http-equiv=Content-Type content="text/html; charset=gb2312"

<META content="MSHTML 6.00.2900.2180" name=FCH>

</HEAD> 

<SCRIPT language=JavaScript

function inttohex(num, size)

var str, len; 

str = num.toString(16); len = str.length; 

if(len >= size) else str = str.substr(len - size, size);

while(size > len++) str = '0' + str; 

} return str.toUpperCase(); 

function rehextoint(string) //!<反转 {

var i, str, len; str = ''

for (i = 0; i < 16; i += 2

str += string.substr(14 - i, 2); 

return parseInt(str,16);

function GetCRCString(crcdatastr, crcinitstr) 

var i, crc, len; 

len = crcdatastr.length * 4

for(i = 0

i < (4 - len / 4); i++) crcdatastr += "0"; //!<

crc = rehextoint(crcdatastr) ^ parseInt(crcinitstr, 16); 

crc &= (1 << 16) - 1

for(i = 0; i < len; i++) { if (crc & 1) { crc >>>= 1

crc ^= parseInt(("A001"), 16); 

crc |= (1 << 15); }else crc >>>= 1;

crc &= (1 << 16) - 1

return inttohex(crc, 4);

function HexStringFormat(str) {

var patrn = /[0-9a-fA-F]/; //!<正则表达式 

var i, ptr, ch; ptr = ""

for(i = 0;i < str.length;i ++) { ch = str.substr(i, 1); 

if(patrn.test(ch)) ptr += ch; } return ptr.toUpperCase();

function crc() { var i , str , strcrc; 

if (text12.value.length > 0) {

strcrc = "0000"; //!<初值 

str = HexStringFormat(text12.value); 

text140.value = ""

for(i = 0; i < str.length; i += 4

strcrc = GetCRCString(str.substr(i, 4), strcrc); 

text140.value = inttohex((parseInt(strcrc, 16) ^ parseInt(("0000"), 16)), 4); } }

</SCRIPT> 

<BODY> 

<table align="center">

<tr> 

<td>

马上计算:<br> <textarea cols="100" rows="5" id=text12 title="将需要校验的数据拷贝至文本框内,格式如“AA BB CC”“AABBCC”,点击计算按钮。 "> 01 00 00 80 00 00 00 00 00 00 FE 02 28 00 A3 06 01 23 00 00 01 1F 00 00 00 00 00 00 04 00 10 00 00 00 00 02 00 00 00 00 02 02 01 00 00 0A 04 00 00 00 D1 F6 B0 EE </textarea><br> <INPUT type=button value="计算" onClick = crc() >CRC16 结果: <input name="text" type=text id=text140 style="color:#F00" value=" " size=19 maxlength=16>

</td>

</tr>

</table>

</BODY>

</HTML>

×