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

动易做网站如何陕西省住房和城乡建设厅网站首页

动易做网站如何,陕西省住房和城乡建设厅网站首页,网站建设全程揭秘,企业网络设计方案预算文章目录 奇偶校验介绍奇偶校验 python 实现奇偶校验C代码实现 海明码详细介绍 奇偶校验介绍 奇偶校验是一种错误检测方法#xff0c;广泛应用于计算机内部以及数据通信领域。其基本原理是为了使得一组数据#xff08;通常是一字节8位#xff09;中的“1”的个数为偶数或奇… 文章目录 奇偶校验介绍奇偶校验 python 实现奇偶校验C代码实现 海明码详细介绍 奇偶校验介绍 奇偶校验是一种错误检测方法广泛应用于计算机内部以及数据通信领域。其基本原理是为了使得一组数据通常是一字节8位中的“1”的个数为偶数或奇数。 奇偶校验分为两种 偶校验确保数据中“1”的个数为偶数。如果“1”的个数是奇数则添加一个“1”进行校验如果“1”的个数已经是偶数则添加一个“0”进行校验。奇校验确保数据中“1”的个数为奇数。如果“1”的个数是偶数则添加一个“1”进行校验如果“1”的个数已经是奇数则添加一个“0”进行校验。 举个例子 比如我们有一个字节的数据二进制表示为1001 1100十六进制为9C。这个字节中“1”的个数为4是偶数。 如果我们要进行偶校验由于“1”的个数已经是偶数所以我们添加一个“0”得到的校验字节为1001 1100 0十六进制为138。如果我们要进行奇校验由于“1”的个数是偶数所以我们添加一个“1”得到的校验字节为1001 1100 1十六进制为139。 当接收方收到校验字节后就可以通过计算“1”的个数来判断数据是否出现错误。如果接收到的字节中“1”的个数与预期偶数或奇数不符就可以认为数据在传输过程中可能出现了错误。 需要注意的是奇偶校验只能检测出单个位的错误如果多个位同时出错可能会导致错误无法被检测出来。 奇偶校验 python 实现 在串行通信中奇偶校验被用于错误检测。但是值得注意的是Linux系统并没有直接可以进行奇偶校验的命令。你可能需要使用其他工具或语言如awkperlpython等来实现奇偶校验操作。这些操作通常涉及到二进制数的处理和位操作。 例如下面的 Python 脚本可以计算一个文件的奇偶校验 def parity_of(int_type): parity 0 while (int_type): parity ~parity int_type int_type (int_type - 1) return(parity) filename yourfile with open(filename, rb) as f: c f.read(1) while c: print(parity_of(ord(c))) c f.read(1)这个脚本会读取文件 ‘yourfile’然后逐字节计算奇偶校验并输出结果。如果结果为0表示该字节中有偶数个1如果结果为-1表示该字节中有奇数个1。 奇偶校验C代码实现 #include stdio.h unsigned int parity(unsigned int n) { unsigned int parity 0; while (n) { parity !parity; n n (n - 1); } return parity; } int main(void) { unsigned int n; printf(Enter a number: ); scanf(%u, n); printf(Parity of number %u is %s\n, n, (parity(n)? odd: even)); return 0; }上述代码首先会询问用户输入一个数字然后计算该数字的偶校验。如果该数字的二进制表示中 ‘1’ 的个数是奇数则它的偶校验就是奇数反之则为偶数。 对于奇校验只需稍微修改一下上述代码即可 #include stdio.h unsigned int parity(unsigned int n) { unsigned int parity 1; // 修改这里 while (n) { parity !parity; n n (n - 1); } return parity; } int main(void) { unsigned int n; printf(Enter a number: ); scanf(%u, n); printf(Parity of number %u is %s\n, n, (parity(n)? odd: even)); return 0; }现在如果输入的数字的二进制表示中 ‘1’ 的个数是奇数则其奇校验就是偶数反之则为奇数。 海明码详细介绍 海明码Hamming code是一种错误检测和纠正的编码方式由美国数学家理查德·海明于1950年代早期提出。 海明码的核心思想是在数据位中插入多个校验位这些校验位覆盖的数据位范围有所重叠使得任何一个位的错误都能被至少两个校验位所发现。通过这种方式如果某一位发生错误可以通过查看所有的校验位来确定出错的是哪一位从而达到纠错的目的。 具体来说对于长度为 m 的信息位我们需要添加r个校验位其中 r 是满足: 2rr m r 1 的最小整数。例如对于长度为4位的信息位我们需要添加3位校验位因为 23 8 4 3 1。 在确定了校验位数量后我们需要确定每个校验位的位置以及它们应该覆盖的数据位。这个过程有一定的规则可循首先把校验位放在2的整数幂的位置1248…等等然后每个校验位覆盖的数据位是从该校验位的位置开始覆盖相应的位数然后跳过相同的位数再覆盖相同的位数以此类推。比如位置在 2 的 n 次方的校验位会覆盖从位置 n 开始的每隔 n个位。 生成了校验位之后接收端可以通过检查每个校验位来确定是否有错误以及错误在哪一位。如果所有的校验位都是正确的那么数据没有错误如果某些校验位错误那么错误的位置就是这些错误校验位的位置之和。例如如果位置2和位置4的校验位错误那么错误的数据位就是位置 246。 海明码虽然只能纠正单个位的错误但它的优点是实现简单计算量小适用于需要实时纠错的场景。
http://www.hkea.cn/news/14571853/

相关文章:

  • 省住房和城乡建设厅网站万维网网站服务的名称
  • 网站seo诊断技巧杭州模板建站
  • 网站的开发环境设计搜狗推广后台登录
  • 解决网站兼容性问题互动网站建设公司
  • 做网站怎么样wordpress邮件表单
  • 百度免费网站空间阳新网络推广公司
  • 可信赖的邢台做网站网站对公司的意义
  • 国家级示范建设网站怎么做网站自动采集数据库
  • html5国内网站建设网络系统管理是做什么的
  • 奉贤集团网站建设望牛墩仿做网站
  • 北京网站建设厂家opencart做视频网站
  • 矿区网站建设wordpress如何转换为中文版
  • 中国志愿者服务网站登录注册如何提升网站速度
  • 专业做淘宝网站绍兴英德市住房和城乡建设局手机网站
  • 网页设计欣赏有符号深圳网站建设公司乐云seo598
  • php网站后台进不去php 双下划线 wordpress
  • 云南热搜科技做网站不给源码广告设计与制作工作内容
  • 手机网站建设 jz.woonl伊春百姓网免费发布信息网
  • 该网站在工信部的icp ip地址企业营销类专业网站
  • 免费做网站tk湖州网站建设有哪些
  • 股票网站开发课程网站开发流程图及原型图
  • 网站编辑怎么做wordpress 迁移 ngix
  • 广州货运网站建设网站的基本建设投资
  • 专业网站建设推荐wordpress文章图片并排
  • 汽车o2o网站建设郑州网页网站制作
  • 比较流行的网站建设技术有哪些湘潭网站建设是什么
  • wordpress免费外贸主题厦门网站优化建设
  • 西安十强互联网站建设公司五台网站建设
  • 中企动力做的网站山西太原做购物平台网站客户体验活动
  • 做网站的公司挣钱吗怎么推广自己的物流公司