亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
538在线一区二区精品国产| 亚洲高清在线视频| 久久久久综合网| 日韩精品在线一区| 欧美成人一区二区三区在线观看| 欧亚洲嫩模精品一区三区| 色老头久久综合| 色婷婷av一区二区三区大白胸| eeuss鲁片一区二区三区在线观看 eeuss鲁片一区二区三区在线看 | 国产日韩欧美a| 26uuu亚洲综合色| 91精品国产色综合久久不卡电影| 欧美日韩国产中文| 欧美喷水一区二区| 8v天堂国产在线一区二区| 在线综合亚洲欧美在线视频| 欧美日韩国产天堂| 日韩天堂在线观看| 日韩三级视频中文字幕| 欧美肥妇free| 欧美videossexotv100| 26uuu色噜噜精品一区二区| 久久九九久精品国产免费直播| 国产日韩欧美激情| 亚洲欧美在线视频观看| 亚洲人123区| 亚洲国产三级在线| 午夜在线成人av| 免费看黄色91| 福利91精品一区二区三区| 成人午夜电影网站| 激情综合一区二区三区| 国产精品资源网| 亚洲欧美国产77777| 中文字幕国产一区| 亚洲欧美激情在线| 日韩不卡一区二区| 国产真实乱子伦精品视频| av成人免费在线| 欧美日韩在线播放三区四区| 91精品国产91热久久久做人人| 精品日韩一区二区| 亚洲欧洲性图库| 日日摸夜夜添夜夜添亚洲女人| 国产乱码精品一品二品| 一本到高清视频免费精品| 欧美丰满美乳xxx高潮www| 久久久久久久性| 亚洲国产精品综合小说图片区| 久久99久国产精品黄毛片色诱| 成人国产在线观看| 欧美日韩mp4| 国产网红主播福利一区二区| 夜夜精品视频一区二区| 国产曰批免费观看久久久| 色综合天天狠狠| 亚洲精品一区二区三区香蕉| 亚洲乱码中文字幕综合| 精品中文字幕一区二区| 色视频欧美一区二区三区| 日韩欧美成人一区| 一区二区欧美视频| 极品美女销魂一区二区三区| 欧美视频第二页| 日本一区二区三区dvd视频在线| 亚洲成人午夜电影| 高清不卡一二三区| 日韩欧美亚洲国产另类| 亚洲最新在线观看| 国产91综合网| 精品国产一区二区三区久久久蜜月| 亚洲最快最全在线视频| 国产成人精品aa毛片| 日韩一区二区免费在线电影| 亚洲黄色片在线观看| 丁香激情综合国产| 欧美电影免费提供在线观看| 亚洲午夜在线电影| 99精品热视频| 久久亚洲捆绑美女| 蜜臀av一级做a爰片久久| 91浏览器在线视频| 欧美国产精品一区二区三区| 精品一区二区综合| 欧美一级片在线看| 亚洲国产日韩精品| a4yy欧美一区二区三区| 欧美精品一区二区在线观看| 日韩精品一级中文字幕精品视频免费观看| 99视频精品免费视频| 中文字幕av不卡| 国产精品77777| 欧美精品一区二区三区久久久| 日韩电影在线免费看| 欧美色图片你懂的| 一区二区三区在线视频观看58| 不卡在线视频中文字幕| 国产精品私房写真福利视频| 九九精品视频在线看| 日韩欧美一区在线| 日本va欧美va瓶| 欧美一区二区性放荡片| 日韩精品一二三| 欧美一区二区三区不卡| 麻豆91小视频| 欧美草草影院在线视频| 国内精品写真在线观看| 久久婷婷国产综合精品青草| 国产真实乱对白精彩久久| 久久综合成人精品亚洲另类欧美| 久久99久久99| 久久精品网站免费观看| 国产福利一区二区三区视频| 久久久久久亚洲综合| 国产v日产∨综合v精品视频| 国产欧美日韩激情| 99精品热视频| 亚洲夂夂婷婷色拍ww47| 欧美女孩性生活视频| 日本va欧美va精品| 精品av久久707| 成人精品免费看| 亚洲人亚洲人成电影网站色| 在线精品视频一区二区| 亚洲aaa精品| 日韩视频免费直播| 国产乱码精品一区二区三区av| 欧美激情中文字幕一区二区| 成人在线一区二区三区| 玉足女爽爽91| 欧美一区二区三区不卡| 国产东北露脸精品视频| 亚洲视频在线一区| 欧美日韩免费高清一区色橹橹 | 久草精品在线观看| 国产欧美一区二区在线| 91免费观看视频在线| 亚洲一级二级三级| 欧美一区二区三区在线观看| 国内外成人在线视频| 亚洲视频 欧洲视频| 欧美日韩电影在线| 国产精品一区在线| 玉足女爽爽91| 日韩欧美激情一区| 成人国产在线观看| 日韩国产欧美在线播放| 欧美国产精品劲爆| 欧美日韩一区小说| 高清成人免费视频| 午夜一区二区三区在线观看| 久久一区二区三区四区| 欧美精品亚洲一区二区在线播放| 国产又黄又大久久| 亚洲一二三四在线观看| 久久午夜色播影院免费高清 | 7777精品伊人久久久大香线蕉完整版| 国产一区二区不卡| 亚洲一二三区在线观看| 久久久久国产精品人| 欧美在线色视频| 国产精品99久久久久久久女警| 亚洲高清不卡在线观看| 中文字幕av资源一区| 日韩一区国产二区欧美三区| 99v久久综合狠狠综合久久| 免费亚洲电影在线| 亚洲激情综合网| 日本一区二区免费在线| 欧美一区二区三区免费观看视频 | 精品处破学生在线二十三| 一本色道久久加勒比精品| 国内一区二区在线| 日一区二区三区| 一区二区视频在线| 欧美韩日一区二区三区四区| 91精品国产综合久久久蜜臀粉嫩| av中文一区二区三区| 国内精品嫩模私拍在线| 日韩精品久久理论片| 亚洲综合无码一区二区| 国产精品欧美久久久久无广告| 欧美一区二区国产| 欧美美女一区二区| 在线欧美日韩精品| 91在线观看一区二区| 国产a精品视频| 国内偷窥港台综合视频在线播放| 日韩精品一级二级| 午夜久久久久久久久| 一区二区三区中文字幕电影| 亚洲欧美一区二区视频| 中文乱码免费一区二区| 国产婷婷色一区二区三区| 欧美成人精品1314www| 欧美一区二区视频观看视频| 欧美日韩一二区| 欧美亚男人的天堂| 色婷婷综合久色| 92国产精品观看|