当前位置: 首页 > news >正文

学习网站建设要报班吗wordpress home插件

学习网站建设要报班吗,wordpress home插件,河南省新闻出版局,受雇去建设网站类网站C语言CRC-16 IBM格式校验函数 CRC-16校验产生2个字节长度的数据校验码#xff0c;通过计算得到的校验码和获得的校验码比较#xff0c;用于验证获得的数据的正确性。基本的CRC-16校验算法实现#xff0c;参考#xff1a; C语言标准CRC-16校验函数。 不同厂家通过对输入数…C语言CRC-16 IBM格式校验函数 CRC-16校验产生2个字节长度的数据校验码通过计算得到的校验码和获得的校验码比较用于验证获得的数据的正确性。基本的CRC-16校验算法实现参考 C语言标准CRC-16校验函数。 不同厂家通过对输入数据前处理和输出数据后处理的方式不同又产生了不同的厂家校验函数这里介绍IBM格式的CRC-16校验函数。IBM格式对输入数据按照单个字节进行位反序。对于输出的校验码进行整体位反序。 正向算法 正向算法是符合标准CRC-16的计算理论从左向右计算也即计算过程中移位时向左移出。几种正向算法的实现如下 CRC-16 IBM格式校验函数一(8位输入数据格式64位装载计算) #include stdio.h #include stdlib.h uint16_t PY_CRC_16_IBM(uint8_t *di, uint32_t len) {uint32_t crc_poly 0x00018005; //X^16X^15X^21 total 17 effective bits. Computed total data shall be compensated 16-bit 0 before CRC computing.uint8_t *datain;uint64_t cdata 0; //Computed total datauint32_t data_t 0; //Process data of CRC computinguint16_t index_t 63; ///bit shifting index for initial 1 searchinguint16_t index 63; //bit shifting index for CRC computinguint8_t rec 0; //bit number needed to be compensated for next CRC computinguint32_t cn(len2)/6;uint32_t cr(len2)%6;uint32_t j;datain malloc(len2);for(j0;jlen;j){datain[j] 0;for(uint8_t m0; m7; m){datain[j] | ( ( di[j](7-m) ) 1 ) m;}}datain[len] 0; datain[len1] 0;//Compensate 16-bit 0 for input dataif(len6) //Mount data for only one segment{for(j0;j(len1);j){cdata (cdata8);cdata cdata|datain[j];}cn 1;}else{if(cr0){cr 6;}else if(cr1){cr 7;}else if(cr2){cr 8;}else{cn;}for(j0;jcr;j){cdata (cdata8);cdata cdata|datain[j];}}do{cn--;while(index_t0){if( (cdataindex_t)1 ){index index_t;index_t 0;data_t | (cdata(index-16));{data_t data_t ^ crc_poly;}while((index!0x5555)(index!0xaaaa)){for(uint8_t n1;n17;n){if ((data_t(16-n))1) {rec n;break;}if (n16) rec17;}if((index-16)rec){data_t data_t(index-16);data_t | (uint32_t)((cdata(64-(index-16)))(64-(index-16)));index 0x5555;}else{for(uint8_t i1;irec;i){data_t (data_t1)|((cdata(index-16-i))1) ;}if(rec! 17){data_t data_t ^ crc_poly;index - rec;}else{data_t 0;index_t index-16-1;index 0xaaaa;}}}if(index0x5555) break;}else{index_t--;if(index_t16) break;}}if(cn0) //next segment{cdata data_t0x00ffff;for(uint8_t k0;k6;k){cdata (cdata8);cdata cdata|datain[j];}data_t 0;index_t 63; ///bit shifting index for initial 1 searchingindex 63; //bit shifting index for CRC computingrec 0; //bit number needed to be compensated for next CRC computing}}while(cn0);free(datain);uint16_t i_data_t 0;for(uint8_t n0; n15; n){i_data_t | ( ( data_t(15-n) ) 1 ) n;}return i_data_t; }CRC-16 IBM格式校验函数二8位输入数据格式 uint16_t PY_CRC_16_S_IBM(uint8_t *di, uint32_t len) {uint16_t crc_poly 0x8005; //X^16X^15X^21 total 16 effective bits without X^16. Computed total data shall be compensated 16-bit 0 before CRC computing.uint32_t clen len2;uint8_t cdata[clen] ;for(uint32_t j0;jlen;j){cdata[j] 0;for(uint8_t m0; m7; m){cdata[j] | ( ( di[j](7-m) ) 1 ) m;}}cdata[len]0; cdata[len1]0;uint16_t data_t (((uint16_t)cdata[0]) 8) cdata[1]; //CRC registerfor (uint32_t i 2; i clen; i){for (uint8_t j 0; j 7; j){if(data_t0x8000)data_t ( (data_t1) | ( (cdata[i](7-j))0x01) ) ^ crc_poly;elsedata_t ( (data_t1) | ( (cdata[i](7-j))0x01) ) ;}}uint16_t i_data_t 0;for(uint8_t n0; n15; n){i_data_t | ( ( data_t(15-n) ) 1 ) n;}return i_data_t; }CRC-16 IBM格式校验函数三16位输入数据格式 uint16_t PY_CRC_16_T16_IBM(uint16_t *di, uint32_t len) {uint16_t crc_poly 0x8005; //X^16X^15X^21 total 16 effective bits without X^16. Computed total data shall be compensated 16-bit 0 before CRC computing.uint16_t data_t 0; //CRC registeruint16_t cdata[len];for(uint32_t j0;jlen;j){cdata[j] 0;for(uint8_t m0; m7; m){cdata[j] | ( ( ( (di[j]8)(7-m) ) 1 ) m ) | ( ( ( ( (di[j]0x00ff)(7-m) ) 1 ) m ) 8 );}}for(uint32_t i 0; i len; i){data_t ^ cdata[i]; //16-bit datafor (uint8_t j 0; j 16; j){if (data_t 0x8000)data_t (data_t 1) ^ crc_poly;elsedata_t 1;}}uint16_t i_data_t 0;for(uint8_t n0; n15; n){i_data_t | ( ( data_t(15-n) ) 1 ) n;}return i_data_t; }CRC-16 IBM格式校验函数四8位输入数据格式 uint16_t PY_CRC_16_T8_IBM(uint8_t *di, uint32_t len) {uint16_t crc_poly 0x8005; //X^16X^15X^21 total 16 effective bits without X^16. Computed total data shall be compensated 16-bit 0 before CRC computing.uint16_t data_t 0; //CRC registeruint8_t cdata[len];for(uint32_t j0;jlen;j){cdata[j] 0;for(uint8_t m0; m7; m){cdata[j] | ( ( di[j](7-m) ) 1 ) m;}}for(uint32_t i 0; i len; i){data_t ^ cdata[i]8; //8-bit datafor (uint8_t j 0; j 8; j){if (data_t 0x8000)data_t (data_t 1) ^ crc_poly;elsedata_t 1;}}uint16_t i_data_t 0;for(uint8_t n0; n15; n){i_data_t | ( ( data_t(15-n) ) 1 ) n;}return i_data_t; }反向算法 反向算法是从由右向左计算也即计算过程中移位时向右移出。而计算过程中的输入数据高优先计算位和校验参数的对齐关系不变。因此把一个字节放在CRC计算寄存器的最低字节时对于IBM格式最右侧最低位实际上是高优先计算位而校验参数要相应倒序从而计算位置对照关系不变。 CRC-16 IBM格式校验函数五反向算法8位输入数据格式 uint16_t PY_CRC_16_T8_IBM_i(uint8_t *di, uint32_t len) {uint16_t crc_poly 0xA001; //Bit sequence inversion of 0x8005uint16_t data_t 0; //CRC registerfor(uint32_t i 0; i len; i){data_t ^ di[i]; //8-bit datafor (uint8_t j 0; j 8; j){if (data_t 0x0001)data_t (data_t 1) ^ crc_poly;elsedata_t 1;}}return data_t; }算法验证 5种算法结果相同 通过在线CRC工具对照验证成功 –End–
http://www.lakalapos1.cn/news/7881/

相关文章:

  • 网站icp申请wordpress svn
  • 丹东有做公司网站的吗php企业网站源码下载
  • 网站建设深圳给源码有哪些免费做外贸的网站
  • 苏州网站关键字优化图片网站的优化
  • 建设银行支付宝网站wordpress万网安装
  • 交互 网站网上哪里有卖嗅探器
  • 长沙seo网站优化国办网站建设规范
  • 怎么自己做网站卡扣人力资源管理师报名时间2022年
  • 东营网站设计制作frontpage做网站怎么样
  • 微网站设计制作wordpress里再建一个网站
  • 排行网站模板wordpress flv
  • 自学网站开发多少时间网站设计难吗
  • 吴忠市住房和城乡建设局网站成都十大著名景点
  • 做网站的联系方式零库存品牌童装杭州网站建设
  • 做网站什么是解析什么是跳转asp动态链接生成网站地图
  • 无锡网站建设方案服务企业所得税税率三个档次
  • 网站设计方案谁写安新网站建设
  • 河南营销型网站建设厦门网站制作品牌
  • 中国建设银行的官方网站logo设计哪里做得好
  • html在网站开发中的应用做一个商务平台网站的费用
  • wix wordpress优化网站内容的方法
  • 淘宝联盟做网站爱站网seo查询
  • 网站建设2017排名wordpress用闲聊
  • 诸城营销型网站建设网站开发电话
  • 成都好的网站设计公司wordpress 选择服务器配置
  • 泉州网站制作推广开网店软件
  • 济南建站软件个人服务器搭建做网站
  • 技术支持 贵阳贵阳网站建设昆明市哪里有网站建设
  • 厦门网站建设推广哪家好创意网页设计作品
  • 荼叶公司网站模板小程序登录不上什么原因