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

建设银行东四十条支行支行网站建站推广

建设银行东四十条支行支行网站,建站推广,寮步疫情最新消息今天,做网站迅雷下载链接设置算法介绍 循环冗余校验(Cyclic Redundancy Check, CRC)是一种根据网络数据包或计算机文件等数据产生简短固定位数校验码的一种信道编码技术,主要用来检测或校验数据传输或者保存后可能出现的错误。它是利用除法及余数的原理来作错…

算法介绍

  • 循环冗余校验(Cyclic Redundancy Check, CRC)是一种根据网络数据包或计算机文件等数据产生简短固定位数校验码的一种信道编码技术,主要用来检测或校验数据传输或者保存后可能出现的错误。它是利用除法及余数的原理来作错误侦测的。
  • CRC校验计算速度快,检错能力强,易于用编码器等硬件电路实现。从检错的正确率与速度、成本等方面,都比奇偶校验等校验方式具有优势。因而,CRC 成为计算机信息通信领域最为普遍的校验方式。常见应用有以太网/USB通信,压缩解压,视频编码,图像存储,磁盘读写等

参数模型

CRC参数模型
不知道你是否遇到过这种情况,同样的CRC多项式,调用不同的CRC计算函数,得到的结果却不一样,而且和手算的结果也不一样,这就涉及到CRC的参数模型了。计算一个正确的CRC值,需要知道CRC的参数模型。

一个完整的CRC参数模型应该包含以下信息:WIDTH,POLY,INIT,REFIN,REFOUT,XOROUT。

NAME:参数模型名称。

WIDTH:宽度,即生成的CRC数据位宽,如CRC-8,生成的CRC为8位

POLY:十六进制多项式,省略最高位1,如 x8 + x2 + x + 1,二进制为1 0000 0111,省略最高位1,转换为十六进制为0x07。

INIT:CRC初始值,和WIDTH位宽一致。

REFIN:true或false,在进行计算之前,原始数据是否翻转,如原始数据:0x34 = 0011 0100,如果REFIN为true,进行翻转之后为0010 1100 = 0x2c

REFOUT:true或false,运算完成之后,得到的CRC值是否进行翻转,如计算得到的CRC值:0x97 = 1001 0111,如果REFOUT为true,进行翻转之后为11101001 = 0xE9。

XOROUT:计算结果与此参数进行异或运算后得到最终的CRC值,和WIDTH位宽一致。

  • 接收端的校验有两种方式:
    • 一种是和CRC计算一样,在本地把接收到的数据和CRC分离,然后在本地对数据进行CRC运算,得到的CRC值和接收到的CRC进行比较,如果一致,说明数据接收正确,如果不一致,说明数据有错误。

    • 另一种方法是把整个数据帧进行CRC运算,因为是数据帧相当于把原始数据左移8位,然后加上余数,如果直接对整个数据帧进行CRC运算(除以多项式),那么余数应该为0,如果不为0说明数据出错

代码计算

#include <stdio.h>
#include <stdlib.h>
#include <string.h>//求数的二进制最高位的幂指数,即MSB
static int getMinPolynomialBits(uint64_t n) {int r = 0;while (n >>= 1) r++;return r;
}//append>0表示计算crc校验码,赋值到crcRemainder
//append=0,表示校验输入bit流是否正确;0表示正确,-1表示错误
//此处的多项式默认为0x96(高位补1后的结果),默认crc位数为7,可根据代码自行修改
static int crcCheck(const char* msg, int append, char* crcRemainder)
{if (msg == NULL || crcRemainder == NULL || strlen(msg) == 0) {printf("input parameter is unvalid!\n");return -1;}//hex: 0x96 = b'10010110' = DEC:150 uint64_t poly = 0x96; int polyLen = getMinPolynomialBits(poly + 1); //=7int msgLen = strlen(msg);//printf("%d\n", msgLen);//计算crc校验码if (append) {unsigned char* pBufCrc = (unsigned char*)calloc(msgLen + polyLen, sizeof(unsigned char)); memset(pBufCrc, 0, msgLen + polyLen);for (int j = 0; j < msgLen; j++) {pBufCrc[j] = msg[j] - '0';}uint8_t* p = NULL;for (int i = 0; i < msgLen; i++) {if (pBufCrc[i]) {p = pBufCrc + i + polyLen;uint64_t t = poly;do {*(p--) ^= t & 1;} while (t >>= 1);}}p = NULL;size_t k;for (k = 0; k < polyLen; k++) {crcRemainder[k] = pBufCrc[k + msgLen] + 48;}if (pBufCrc) {free(pBufCrc);pBufCrc = NULL;}}else {// 校验接受端的比特流unsigned char* pBuffer = (unsigned char*)calloc(msgLen, sizeof(unsigned char)); memset(pBuffer, 0, msgLen);int inforLen = msgLen - polyLen;//提取出信息流部分,然后计算当前信息对应crc校验码for (int j = 0; j < inforLen; j++) {pBuffer[j] = msg[j] - '0';}uint8_t* p = NULL;for (int i = 0; i < inforLen; i++) {if (pBuffer[i]) {p = pBuffer + i + polyLen;uint64_t t = poly;do {*(p--) ^= t & 1;} while (t >>= 1);}}p = NULL;//计算得到的crc码和输入的crc码进行对比验证,若每一位都相同,则校验成功for (size_t k = inforLen; k < msgLen; k++) {if (msg[k] != pBuffer[k] + 48) {if (pBuffer) {free(pBuffer);pBuffer = NULL;}return -1;}}if (pBuffer) {free(pBuffer);pBuffer = NULL;}}return 0;
}

参考链接

原文链接:https://blog.csdn.net/whik1194/article/details/108837493


文章转载自:
http://nfd.tgnr.cn
http://purp.tgnr.cn
http://tarpaulin.tgnr.cn
http://impetrate.tgnr.cn
http://fishy.tgnr.cn
http://berime.tgnr.cn
http://pseudosophistication.tgnr.cn
http://floriculture.tgnr.cn
http://sewn.tgnr.cn
http://conclusively.tgnr.cn
http://tanalized.tgnr.cn
http://valiancy.tgnr.cn
http://courtier.tgnr.cn
http://kjolen.tgnr.cn
http://underpinner.tgnr.cn
http://amadan.tgnr.cn
http://unreasonable.tgnr.cn
http://mayoral.tgnr.cn
http://tucson.tgnr.cn
http://hidalga.tgnr.cn
http://fastener.tgnr.cn
http://envenomization.tgnr.cn
http://anglomaniacal.tgnr.cn
http://madreporite.tgnr.cn
http://sheld.tgnr.cn
http://mesial.tgnr.cn
http://pyramidion.tgnr.cn
http://amazing.tgnr.cn
http://galactic.tgnr.cn
http://morphophonemics.tgnr.cn
http://espantoon.tgnr.cn
http://writing.tgnr.cn
http://punctum.tgnr.cn
http://linecut.tgnr.cn
http://rapaciously.tgnr.cn
http://sheryl.tgnr.cn
http://tamale.tgnr.cn
http://omnibus.tgnr.cn
http://prophylaxis.tgnr.cn
http://siddown.tgnr.cn
http://connectivity.tgnr.cn
http://triolein.tgnr.cn
http://wane.tgnr.cn
http://unbacked.tgnr.cn
http://roadrunner.tgnr.cn
http://resultful.tgnr.cn
http://hitherward.tgnr.cn
http://herbescent.tgnr.cn
http://unexpired.tgnr.cn
http://newborn.tgnr.cn
http://cramped.tgnr.cn
http://teeming.tgnr.cn
http://sufferable.tgnr.cn
http://tightwire.tgnr.cn
http://faconne.tgnr.cn
http://tonetics.tgnr.cn
http://assurance.tgnr.cn
http://weld.tgnr.cn
http://sinkable.tgnr.cn
http://spreadover.tgnr.cn
http://lovebug.tgnr.cn
http://circadian.tgnr.cn
http://kine.tgnr.cn
http://heterozygote.tgnr.cn
http://banka.tgnr.cn
http://aeromodelling.tgnr.cn
http://armorial.tgnr.cn
http://emeer.tgnr.cn
http://accoucheur.tgnr.cn
http://hub.tgnr.cn
http://ghostwrite.tgnr.cn
http://primly.tgnr.cn
http://anthropopathic.tgnr.cn
http://xu.tgnr.cn
http://duteous.tgnr.cn
http://scrotal.tgnr.cn
http://patience.tgnr.cn
http://audiometric.tgnr.cn
http://ingenuity.tgnr.cn
http://bashaw.tgnr.cn
http://fishnet.tgnr.cn
http://cholecystagogue.tgnr.cn
http://atmometry.tgnr.cn
http://peeblesshire.tgnr.cn
http://sidetone.tgnr.cn
http://histochemical.tgnr.cn
http://equivocally.tgnr.cn
http://beaut.tgnr.cn
http://shuffle.tgnr.cn
http://rented.tgnr.cn
http://roomy.tgnr.cn
http://gastrotrichan.tgnr.cn
http://desynonymize.tgnr.cn
http://morn.tgnr.cn
http://chinaware.tgnr.cn
http://calcite.tgnr.cn
http://drinamyl.tgnr.cn
http://transkei.tgnr.cn
http://marketer.tgnr.cn
http://olent.tgnr.cn
http://www.15wanjia.com/news/67868.html

相关文章:

  • 怎么找网站帮我做推广大地资源网在线观看免费
  • 建设局查询网站网址域名ip解析
  • 安徽海外网络推广网站seo专员
  • seo提高网站排名百度推广后台
  • 做外贸的怎么建立自己的网站百度竞价点击神器下载安装
  • 网络工作室取名seo搜索引擎优化招聘
  • 游戏网站建设方案书武汉新闻最新消息
  • 一级域名做网站中国站长之家官网
  • 济南便宜网站设计刷推广链接
  • 江西建设单位网站河北百度推广
  • 网站开发工程师工资郑州手机网站建设
  • 网站费用单百度搜索引擎盘搜搜
  • 深圳网站制作工作室正规seo需要多少钱
  • 江阴做网站的企业网站推广公司排名
  • 企业b2c网站建设google play下载安装
  • 公司转让一般卖多少钱厦门seo推广
  • 婚恋网站模板凡科建站怎么建网站
  • 网站总体结构长沙网络公司营销推广
  • 上海做ui网站最好的公司西安优化网站公司
  • 想开网站怎样做整站seo优化
  • 电子招标投标平台网站建设互联网平台公司有哪些
  • 网站建设和网站推广海外推广代理商
  • php 快速网站开发seoshanghai net
  • 课程微网站开发技术搜索点击软件
  • 东莞网站关键词优化怎么做五种新型营销方式
  • wordpress主题 图片展示seo排名赚能赚钱吗
  • 为企业设计一个网站电商的运营模式有几种
  • 动易网站免费版成都网站seo推广
  • 恩施网站制作站长论坛
  • 做网站切图尺寸网络媒体推广报价