亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? cyclic redundancy check.htm

?? CRC16的源程序
?? HTM
?? 第 1 頁 / 共 2 頁
字號:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<!-- saved from url=(0067)http://utopia.knoware.nl/users/eprebel/Communication/CRC/index.html -->
<HTML lang=en-US><HEAD><TITLE>Cyclic Redundancy Check</TITLE>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1"><LINK 
href="Cyclic Redundancy Check.files/Styles.css" type=text/css rel=stylesheet>
<META content="MSHTML 6.00.2800.1106" name=GENERATOR></HEAD>
<BODY>
<H1>Cyclic Redundancy Check</H1>
<H2>Introduction</H2>
<P>Different methods exist to calculate a check number for binary data, to be 
able to see if the data is not altered, for example, after being sent through 
some communication channel.<BR>Cyclic Redundancy Check (CRC) is a common method 
for protecting binary data that way. Different CRCs exist, which in the past has 
resulted in a naming scheme. This page discusses the standard ITU-TSS CRC, often 
written as a formula: 
G(x)=x<SUP>16</SUP>+x<SUP>12</SUP>+x<SUP>5</SUP>+1.<BR>Characteristic of this 
CRC is its 16 bits size and its initial value $FFFF. Although, you can encounter 
an initial value $0000 too. </P>
<H2>Hardware</H2>
<P>A CRC generator can be built as a piece of hardware. </P>
<P><IMG height=64 alt=[Image] src="Cyclic Redundancy Check.files/Hardware.gif" 
width=424> </P>
<P>Each bit (b) of the binary data is shifted into the CRC register after being 
XORed with the CRCs most significant bit. This part of the generator ensures the 
cyclical aspect of CRC. The XOR result is inserted in CRC bit 5 and 12 too. 
During the processing of bit b, all current CRC bits (modified or unmodified) 
are shifted one position to the left.<BR>If a byte must be processed, all 8 bits 
must be processed one after another. The most significant bit is processed 
first. </P>
<P>Example: </P>
<TABLE>
  <TBODY>
  <TR>
    <TD>Initial CRC value:</TD>
    <TD><CODE>1111 1111 1111 1111</CODE></TD></TR>
  <TR>
    <TD>Byte to process:</TD>
    <TD><CODE>0101 1010</CODE></TD></TR></TBODY></TABLE>
<P><IMG height=158 alt=[Image] src="Cyclic Redundancy Check.files/Example.gif" 
width=450> </P>
<TABLE>
  <TBODY>
  <TR>
    <TD>New CRC value:</TD>
    <TD><CODE>0001 1010 0100 1111</CODE></TD></TR></TBODY></TABLE>
<H2>Formula</H2>
<P>Expressed as a set of formulas, processing a bit <CODE>b</CODE> means: </P>
<TABLE>
  <TBODY>
  <TR>
    <TD><CODE>c<SUP>*</SUP><SUB>15</SUB>=c<SUB>14</SUB></CODE></TD>
    <TD><CODE>c<SUP>*</SUP><SUB>14</SUB>=c<SUB>13</SUB></CODE></TD>
    <TD><CODE>c<SUP>*</SUP><SUB>13</SUB>=c<SUB>12</SUB></CODE></TD>
    <TD><CODE>c<SUP>*</SUP><SUB>12</SUB>=c<SUB>11</SUB><IMG height=9 alt=^ 
      src="Cyclic Redundancy Check.files/XOR.gif" 
    width=11>c<SUB>15</SUB></CODE></TD></TR>
  <TR>
    <TD><CODE>c<SUP>*</SUP><SUB>11</SUB>=c<SUB>10</SUB></CODE></TD>
    <TD><CODE>c<SUP>*</SUP><SUB>10</SUB>=c<SUB>9</SUB></CODE></TD>
    <TD><CODE>c<SUP>*</SUP><SUB>9&nbsp;</SUB>=c<SUB>8</SUB></CODE></TD>
    <TD><CODE>c<SUP>*</SUP><SUB>8&nbsp;</SUB>=c<SUB>7</SUB></CODE></TD></TR>
  <TR>
    <TD><CODE>c<SUP>*</SUP><SUB>7&nbsp;</SUB>=c<SUB>6</SUB></CODE></TD>
    <TD><CODE>c<SUP>*</SUP><SUB>6&nbsp;</SUB>=c<SUB>5</SUB></CODE></TD>
    <TD><CODE>c<SUP>*</SUP><SUB>5&nbsp;</SUB>=c<SUB>4</SUB><IMG height=9 alt=^ 
      src="Cyclic Redundancy Check.files/XOR.gif" 
    width=11>c<SUB>15</SUB></CODE></TD>
    <TD><CODE>c<SUP>*</SUP><SUB>4&nbsp;</SUB>=c<SUB>3</SUB></CODE></TD></TR>
  <TR>
    <TD><CODE>c<SUP>*</SUP><SUB>3&nbsp;</SUB>=c<SUB>2</SUB></CODE></TD>
    <TD><CODE>c<SUP>*</SUP><SUB>2&nbsp;</SUB>=c<SUB>1</SUB></CODE></TD>
    <TD><CODE>c<SUP>*</SUP><SUB>1&nbsp;</SUB>=c<SUB>0</SUB></CODE></TD>
    <TD><CODE>c<SUP>*</SUP><SUB>0&nbsp;</SUB>=c<SUB>15</SUB><IMG height=9 
      alt=^ src="Cyclic Redundancy Check.files/XOR.gif" 
  width=11>b</CODE></TD></TR></TBODY></TABLE>
<H2>Software</H2>
<P>One can build a CRC generator in software, that is analoguous to the hardware 
solution. The solution processes each bit separately. </P>
<P>Using the C programming language, the source code could be: 
</P><CODE>unsigned short crc = 0xFFFF;<BR>unsigned short temp;<BR>unsigned char 
byte = 0x5A; //just as an example<BR>unsigned short index;<BR><BR>for(index = 0; 
index &lt;= 7; 
index++)<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;temp = (crc 
&gt;&gt; 15) ^ (byte &gt;&gt; 7);<BR>&nbsp;&nbsp;&nbsp;&nbsp;crc &lt;&lt;= 
1;<BR>&nbsp;&nbsp;&nbsp;&nbsp;if(temp)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;crc 
^= 
0x1021;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;byte 
&lt;&lt;= 1;<BR>&nbsp;&nbsp;&nbsp;&nbsp;} </CODE>
<P>First, b XOR c<SUB>15</SUB> (the cyclical value) is calculated. Then the CRC 
bits are shifted to the left (c<SUB>0</SUB> becomes 0). The cyclical value has 
to be processed in c<SUB>0</SUB>, c<SUB>5</SUB> and c<SUB>12</SUB>. If the 
cyclical value equals 1, bits c<SUB>0</SUB>, c<SUB>5</SUB> and c<SUB>12</SUB> 
are changed at the same moment by XORing the CRC with value 
0000&nbsp;0001&nbsp;0100&nbsp;0001 (0x1021). If the cyclical value equals 0, the 
CRC should be XORed with value 0000&nbsp;0000&nbsp;0000&nbsp;0000. XORing the 
CRC with 0x0000 does not change the CRC, and therefore it is skipped. Finally 
the next bit to be processed is prepared. </P>
<P>In the source code example, the initial CRC value and the byte to be 
processed are already defined. The calculations sub results are: </P>
<TABLE>
  <TBODY>
  <TR align=middle>
    <TD width=50><CODE>crc</CODE></TD>
    <TD width=50><CODE>byte</CODE></TD></TR>
  <TR align=middle>
    <TD width=50><CODE>F F F F</CODE></TD>
    <TD width=50><CODE>5 A</CODE></TD></TR>
  <TR align=middle>
    <TD width=50><CODE>E F D F</CODE></TD>
    <TD width=50><CODE>B 4</CODE></TD></TR>
  <TR align=middle>
    <TD width=50><CODE>D F B E</CODE></TD>
    <TD width=50><CODE>6 8</CODE></TD></TR>
  <TR align=middle>
    <TD width=50><CODE>A F 5 D</CODE></TD>
    <TD width=50><CODE>D 0</CODE></TD></TR>
  <TR align=middle>
    <TD width=50><CODE>5 E B A</CODE></TD>
    <TD width=50><CODE>A 0</CODE></TD></TR>
  <TR align=middle>
    <TD width=50><CODE>A D 5 5</CODE></TD>
    <TD width=50><CODE>4 0</CODE></TD></TR>
  <TR align=middle>
    <TD width=50><CODE>4 A 8 B</CODE></TD>
    <TD width=50><CODE>8 0</CODE></TD></TR>
  <TR align=middle>
    <TD width=50><CODE>8 5 3 7</CODE></TD>
    <TD width=50><CODE>0 0</CODE></TD></TR>
  <TR align=middle>
    <TD width=50><CODE>1 A 4 F</CODE></TD></TR></TBODY></TABLE>
<H2>Simplification</H2>
<P>When processing a byte, the eight most significant bits of the 'old' CRC 
value, will be shifted out of the CRC. Somewhere in the process, these bits will 
be XORed with the byte to be processed. This XOR can be done at once and as a 
first step. A temporary variable is not needed too.<BR>The simpified source code 
could be: </P><CODE>unsigned short crc = 0xFFFF;<BR>unsigned char byte = 
0x5A;<BR>unsigned short index;<BR><BR>crc ^= byte &lt;&lt; 8;<BR>for(index = 0; 
index &lt;= 7; 
index++)<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;crc = crc &amp; 
0x8000 ? (crc &lt;&lt; 1) ^ 0x1021 : crc &lt;&lt; 
1;<BR>&nbsp;&nbsp;&nbsp;&nbsp;} </CODE>
<P>In the source code example too, the initial CRC value and the byte to be 
processed are already defined. The calculations sub results are: </P>
<TABLE>
  <TBODY>
  <TR align=middle>
    <TD><CODE>crc</CODE></TD></TR>
  <TR align=middle>
    <TD><CODE>A 5 F F</CODE></TD></TR>
  <TR align=middle>
    <TD><CODE>5 B D F</CODE></TD></TR>
  <TR align=middle>
    <TD><CODE>B 7 B E</CODE></TD></TR>
  <TR align=middle>
    <TD><CODE>7 F 5 D</CODE></TD></TR>
  <TR align=middle>
    <TD><CODE>F E B A</CODE></TD></TR>
  <TR align=middle>
    <TD><CODE>E D 5 5</CODE></TD></TR>
  <TR align=middle>
    <TD><CODE>C A 8 B</CODE></TD></TR>
  <TR align=middle>
    <TD><CODE>8 5 3 7</CODE></TD></TR>
  <TR align=middle>
    <TD><CODE>1 A 4 F</CODE></TD></TR></TBODY></TABLE>
<H2>Acceleration</H2>
<P>To be able to accelerate the software CRC generator, we first take a look at 
the formulas that express the processing of 8 bits 
(b<SUB>7</SUB>..b<SUB>0</SUB>), combined into a byte (b<SUB>7..0</SUB>). </P>
<TABLE>
  <TBODY>
  <TR>
    <TD><CODE>t<SUB>7..0</SUB></CODE></TD>
    <TD><CODE>=</CODE></TD>
    <TD><CODE>c<SUB>15..8</SUB></CODE></TD>
    <TD><CODE><IMG height=9 alt=^ src="Cyclic Redundancy Check.files/XOR.gif" 
      width=11></CODE></TD>
    <TD><CODE>b<SUB>7..0</SUB></CODE></TD></TR>

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久美女艺术照精彩视频福利播放| 久久国产尿小便嘘嘘| 日韩精品自拍偷拍| 欧美成人欧美edvon| 国产日本欧美一区二区| 国产蜜臀av在线一区二区三区| 理论片日本一区| 国产日韩在线不卡| 国产成人一级电影| 欧美日韩精品是欧美日韩精品| 精品欧美一区二区久久| 国产成+人+日韩+欧美+亚洲| 一本色道**综合亚洲精品蜜桃冫| 欧美艳星brazzers| 国产欧美va欧美不卡在线| 94-欧美-setu| 久久免费精品国产久精品久久久久| 高清久久久久久| 日韩黄色免费网站| 99久久婷婷国产精品综合| 午夜精品久久久久久久蜜桃app| 国产精品一区二区在线看| 欧美片在线播放| 国产一区二区福利视频| 91精品在线麻豆| 亚洲伦在线观看| 尤物在线观看一区| 久久午夜老司机| 加勒比av一区二区| 日韩一区二区三区高清免费看看| 亚洲成人先锋电影| 欧美三级电影一区| 日韩电影在线免费看| 欧美二区在线观看| 青青草原综合久久大伊人精品 | 亚洲精品伦理在线| 日韩一级黄色片| 色综合婷婷久久| 天天影视涩香欲综合网| 亚洲精品美国一| 国产精品美女久久久久av爽李琼| 高清视频一区二区| 国产99精品在线观看| 成人av免费观看| 午夜视频在线观看一区| 国产精品91一区二区| 91老司机福利 在线| 亚洲色图丝袜美腿| 久久免费电影网| 精品国产99国产精品| 国产又黄又大久久| 久久99久久精品| 偷拍一区二区三区| 蜜桃精品在线观看| 国产欧美日韩精品一区| 日韩西西人体444www| 91精品国产综合久久蜜臀| 精品久久一二三区| 日韩一区二区三区电影| 国产精品乱码一区二区三区软件| 一区二区三区免费观看| 欧美成人精品福利| 国产色爱av资源综合区| 日韩欧美一级精品久久| 国产片一区二区三区| 亚洲欧美日韩一区二区三区在线观看 | 国产精品一区免费视频| 精品不卡在线视频| 欧美少妇bbb| 久久蜜臀中文字幕| 久久99久久99| 欧美zozozo| 婷婷国产在线综合| 成人国产视频在线观看| 日韩欧美国产午夜精品| 国产精品成人一区二区三区夜夜夜 | 欧美日韩一卡二卡| 2欧美一区二区三区在线观看视频| 亚洲色图色小说| 国产成人午夜电影网| 欧美理论片在线| 一区二区三区中文字幕电影| 国产精品一品二品| 2023国产精品视频| 奇米精品一区二区三区在线观看一 | 日韩一区二区三区精品视频| 悠悠色在线精品| 成人av电影在线| 亚洲欧洲三级电影| 国产精品三级电影| 国产精品亚洲第一区在线暖暖韩国 | 欧美在线观看你懂的| 欧美高清性hdvideosex| 中文字幕永久在线不卡| 成人高清在线视频| 国产精品水嫩水嫩| 成人一区二区视频| 欧美日韩免费在线视频| 亚洲mv在线观看| 7777精品久久久大香线蕉| 亚洲成a人v欧美综合天堂下载| 欧美丰满美乳xxx高潮www| 首页欧美精品中文字幕| 7878成人国产在线观看| 卡一卡二国产精品| 中文字幕第一区综合| 老司机一区二区| 中文字幕一区二区不卡| 在线视频观看一区| 丝袜亚洲另类欧美| 国产欧美日韩在线看| 欧美伊人久久大香线蕉综合69| 美日韩一区二区| 亚洲精品乱码久久久久久黑人| 欧美理论在线播放| 成人高清视频在线| 五月激情六月综合| 国产精品沙发午睡系列990531| 在线观看国产一区二区| 看电影不卡的网站| 一区二区三区在线观看视频| 日韩一区二区三区观看| 在线观看视频一区二区欧美日韩| 日韩国产欧美视频| 亚洲人成在线播放网站岛国| 欧美一区二区二区| 视频在线观看一区| 亚洲欧美日韩系列| 久久久久久免费网| 91精品黄色片免费大全| 91在线视频官网| 国产福利91精品一区| 日本人妖一区二区| 日韩精品国产欧美| 无吗不卡中文字幕| 午夜精品福利久久久| 午夜视频在线观看一区二区三区| 亚洲免费资源在线播放| 成人欧美一区二区三区| 国产精品嫩草久久久久| 国产精品成人在线观看 | 91国在线观看| 九色porny丨国产精品| 日韩精品国产精品| 日本女人一区二区三区| 蜜臀久久久久久久| 久久国产麻豆精品| 国产一区二区女| 成人免费黄色在线| av中文字幕在线不卡| 奇米精品一区二区三区在线观看一| 日产国产高清一区二区三区| 麻豆91精品91久久久的内涵| 国产制服丝袜一区| 亚洲第一成年网| 久久99国内精品| eeuss鲁片一区二区三区在线观看| 本田岬高潮一区二区三区| 99久久精品国产毛片| 欧美日韩国产欧美日美国产精品| 在线综合视频播放| 久久无码av三级| 亚洲精品网站在线观看| 蜜臀av国产精品久久久久| 成人午夜在线播放| 制服丝袜中文字幕亚洲| 国产欧美一区二区精品仙草咪| 亚洲视频一二三区| 国产成人综合在线播放| 91国产福利在线| 日本一区免费视频| 亚洲va国产va欧美va观看| 国产91高潮流白浆在线麻豆| 欧美日韩国产精品成人| 国产精品国产自产拍高清av | 国产成人综合在线| 日韩一区二区在线播放| 亚洲图片欧美色图| 男人操女人的视频在线观看欧美| www.成人在线| 国产无人区一区二区三区| 久久国产夜色精品鲁鲁99| 欧美日韩久久一区| 亚洲九九爱视频| 99视频精品在线| 国产精品欧美精品| www.欧美色图| ●精品国产综合乱码久久久久| 春色校园综合激情亚洲| 日韩精品一区二| 国内精品免费**视频| 88在线观看91蜜桃国自产| 日本91福利区| 欧美老人xxxx18| 国产在线一区观看| 国产亚洲成年网址在线观看| 国产精品主播直播| 国产精品毛片a∨一区二区三区| 不卡的av网站| 亚洲一区在线观看视频|