CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C语言

请大家帮帮忙(非常非常非常 着急)

楼主chabei(茶杯)2005-06-03 12:51:26 在 C/C++ / C语言 提问

领导让我做一个crc   的一个问题。   crc   我只在学校里学过基本原理从没用过。(很弱)  
   
  我的领导是日本人,交流费尽。  
  他让我做的是关于修改crc   的内容。  
   
  1)crc   是什么样的一个东西,为什么会看到如下的代码,他和2进制文件一样吗?  
  2)如下代码是如何产生的,是和2进制文件那样读出来的吗?  
   
  我好乱,不知如何下手,   请大家帮帮我,非常感谢!  
   
  const   u16   crctab16[]   =    
  {  
          0x0000,   0x1189,   0x2312,   0x329b,   0x4624,   0x57ad,   0x6536,   0x74bf,  
          0x8c48,   0x9dc1,   0xaf5a,   0xbed3,   0xca6c,   0xdbe5,   0xe97e,   0xf8f7,  
          0x1081,   0x0108,   0x3393,   0x221a,   0x56a5,   0x472c,   0x75b7,   0x643e,  
          0x9cc9,   0x8d40,   0xbfdb,   0xae52,   0xdaed,   0xcb64,   0xf9ff,   0xe876,  
          0x2102,   0x308b,   0x0210,   0x1399,   0x6726,   0x76af,   0x4434,   0x55bd,  
          0xad4a,   0xbcc3,   0x8e58,   0x9fd1,   0xeb6e,   0xfae7,   0xc87c,   0xd9f5,  
          0x3183,   0x200a,   0x1291,   0x0318,   0x77a7,   0x662e,   0x54b5,   0x453c,  
          0xbdcb,   0xac42,   0x9ed9,   0x8f50,   0xfbef,   0xea66,   0xd8fd,   0xc974,  
          0x4204,   0x538d,   0x6116,   0x709f,   0x0420,   0x15a9,   0x2732,   0x36bb,  
          0xce4c,   0xdfc5,   0xed5e,   0xfcd7,   0x8868,   0x99e1,   0xab7a,   0xbaf3,  
          0x5285,   0x430c,   0x7197,   0x601e,   0x14a1,   0x0528,   0x37b3,   0x263a,  
          0xdecd,   0xcf44,   0xfddf,   0xec56,   0x98e9,   0x8960,   0xbbfb,   0xaa72,  
          0x6306,   0x728f,   0x4014,   0x519d,   0x2522,   0x34ab,   0x0630,   0x17b9,  
          0xef4e,   0xfec7,   0xcc5c,   0xddd5,   0xa96a,   0xb8e3,   0x8a78,   0x9bf1,  
          0x7387,   0x620e,   0x5095,   0x411c,   0x35a3,   0x242a,   0x16b1,   0x0738,  
          0xffcf,   0xee46,   0xdcdd,   0xcd54,   0xb9eb,   0xa862,   0x9af9,   0x8b70,  
          0x8408,   0x9581,   0xa71a,   0xb693,   0xc22c,   0xd3a5,   0xe13e,   0xf0b7,  
          0x0840,   0x19c9,   0x2b52,   0x3adb,   0x4e64,   0x5fed,   0x6d76,   0x7cff,  
          0x9489,   0x8500,   0xb79b,   0xa612,   0xd2ad,   0xc324,   0xf1bf,   0xe036,  
          0x18c1,   0x0948,   0x3bd3,   0x2a5a,   0x5ee5,   0x4f6c,   0x7df7,   0x6c7e,  
          0xa50a,   0xb483,   0x8618,   0x9791,   0xe32e,   0xf2a7,   0xc03c,   0xd1b5,  
          0x2942,   0x38cb,   0x0a50,   0x1bd9,   0x6f66,   0x7eef,   0x4c74,   0x5dfd,  
          0xb58b,   0xa402,   0x9699,   0x8710,   0xf3af,   0xe226,   0xd0bd,   0xc134,  
          0x39c3,   0x284a,   0x1ad1,   0x0b58,   0x7fe7,   0x6e6e,   0x5cf5,   0x4d7c,  
          0xc60c,   0xd785,   0xe51e,   0xf497,   0x8028,   0x91a1,   0xa33a,   0xb2b3,  
          0x4a44,   0x5bcd,   0x6956,   0x78df,   0x0c60,   0x1de9,   0x2f72,   0x3efb,  
          0xd68d,   0xc704,   0xf59f,   0xe416,   0x90a9,   0x8120,   0xb3bb,   0xa232,  
          0x5ac5,   0x4b4c,   0x79d7,   0x685e,   0x1ce1,   0x0d68,   0x3ff3,   0x2e7a,  
          0xe70e,   0xf687,   0xc41c,   0xd595,   0xa12a,   0xb0a3,   0x8238,   0x93b1,  
          0x6b46,   0x7acf,   0x4854,   0x59dd,   0x2d62,   0x3ceb,   0x0e70,   0x1ff9,  
          0xf78f,   0xe606,   0xd49d,   0xc514,   0xb1ab,   0xa022,   0x92b9,   0x8330,  
          0x7bc7,   0x6a4e,   0x58d5,   0x495c,   0x3de3,   0x2c6a,   0x1ef1,   0x0f78,  
  };  
  问题点数:20、回复次数:9Top

1 楼mccxj(老鼠不逛街)回复于 2005-06-03 13:08:30 得分 20

循环冗余检验,是一种用得最广,   检错能力很强的差错检   测方法。它对数据进行多项式计算,并将得到的和数附在帧的后面。接收设备也执行类似的算法。  
  http://www.xnovo.com/doc/html/aebbbg/bgbbcbaawdtreifoyo.html  
  http://blog.csdn.net/ksaiy/archive/2004/12/23/226960.aspx  
  http://www.xnovo.com/doc/html/aebbbg/bgbbcbaawdtreifoyo.html  
  http://218.22.27.198/leech/Misc/iota/download/crc.doc  
  http://www.7880.com/Print.php?PID=90445f80  
  。。。我也没研究过。。只好帮顶了。。。Top

2 楼myyingmingmy(jklj)回复于 2005-06-03 13:27:05 得分 0

是一种校验方法  
  可以参考一些计算机原理的书籍Top

3 楼zloves(俺是菜鸟)回复于 2005-06-03 13:27:39 得分 0

markTop

4 楼zloves(俺是菜鸟)回复于 2005-06-03 13:27:50 得分 0

dingTop

5 楼mostideal(三甲)回复于 2005-06-03 13:29:51 得分 0

计算机原理上像有。帮你顶了。。。Top

6 楼whatsouta(某疯子)回复于 2005-06-03 13:46:25 得分 0

循环冗余码校验,主要用于监测数据在一个处理过程中是否有过变化Top

7 楼sanhill()回复于 2005-06-03 14:14:14 得分 0

先看看原理,不是很难!  
  对照原理,再在网上找些源代码,应该能够搞定!  
  这些东西不是什么很机密的东东,应该很容易搞定!Top

8 楼chabei(茶杯)回复于 2005-06-03 15:08:37 得分 0

是校验方法   我知道。  
  但为什么用   crctab16[]     这个内容。    
  这个内容是怎么算出来的。Top

9 楼chabei(茶杯)回复于 2005-06-04 09:26:41 得分 0

fseek(stream,   cs,   SEEK_SET);  
  printf("CRC計算中...");  
  crc   =   0;  
  for   (l=0;   l<(len-cs);   l++)   {  
  crc   =   (unsigned   short)((crc   <<   8)   ^   crctab16[(crc   >>   8)   ^    
  (unsigned   char)fgetc(stream)]);  
  }  
  这是小弟的一段代码,   求出来的     crc   该和谁去比较,他的正确性。  
   
  麻烦,稍微写点代码,   我脑子一片空白。Top

相关问题

  • <select>下拉框请教,非常着急!
  • 非常非常着急
  • 各路高手请进!高分求教,非常着急!
  • 请问tomcat 4.0如何配置?多谢了,非常着急!!!!!
  • 请问tomcat 4.0如何配置?多谢了,非常着急!!!!!
  • 如何实现ping操作?非常着急,请大家指教。
  • 非常着急的问题,请高手赐教!
  • 热心人请进 xslt能做到这样吗?非常着急
  • 着急呀!小弟请教一个非常简单的问题!
  • 着急????请指教

关键词

  • 原理
  • 内容
  • crc
  • 校验
  • 方法
  • www

得分解答快速导航

  • 帖主:chabei
  • mccxj

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo