【学习Day2】计算机基础

在这里插入图片描述

✍🏻记录学习过程中的输出,坚持每天学习一点点~
❤️希望能给大家提供帮助~欢迎点赞👍🏻+收藏⭐+评论✍🏻+指点🙏

1.4 校验码

奇偶校验

● 奇偶校验码的编码方法是:
由若干位有效信息的头部或者尾部,再加上一个二进制位(校验位)组成校验码。
★ 奇校验:整个校验码(有效信息位和校验位)中“1”的个数为奇数。
★ 偶校验:整个校验码(有效信息位和校验位)中“1”的个数为偶数。
◎ 如果有奇数个位发生误码,则奇偶性发生变化,可以检查出误码,但不能纠错。
◎ 如果有偶数个位发生误码,则奇偶性不发生变化,不能检查出误码(也称漏检)。

例如:1011如果在尾部加一个二进制数,使用奇校验则是10110,保证1的个数为奇数;使用偶校验则是10111,保证1的个数为偶数。
奇偶校验的尾数一定是不同的。

练习题

给出编码1001101的奇校验码和偶校验码( A )。
A 10011011, 10011010
B 10011011, 10011011
C 10011010, 10011010
D 10011010, 10011010

模2除法

模2除法是二进制下的除法,其特点是不考虑进位和借位,即每一位的除法结果不影响其他位。在循环冗余校验码的计算中,模2除法被应用以进行数据的校验。
模2除法实际上与模10的长除法类似,但它的减法采取“异或”的方式,即同数相减为0,异数相减为1。这种运算方式在CRC校验技术中是核心部分,用于确保数据传输的准确性。
多位二进制模2除法也类似于普通意义上的多位二进制除法,但是在如何确定商的问题上两者采用不同的规则。后者按带借位的二进制除法,根 据余数减除数够减与否确定
商1还是商0,若够减则商1,否则商0。多位模2除法采用模2减法,不带借位的二进制减法,因此考虑余数够减除数与否是没有意义 的。实际上,在CRC运算中,总能保证除数的首位为1,则模2除法运算的商是由余数首位与除数首位的模2除法运算结果确定。因为除数首位总是1,按照模2 除法运算法则,那么余数首位是1就商1,是0就商0。 模2除法它既不向上位借位,也不比较除数和被除数的相同位数值的大小,只要以相同位数进行相除即可。模2加法运算为:1+1=0,0+1=1,0+0=0,无进位,也无
借位;模2减法运算为:1-1=0,0-1=1,1-0=1,0-0=0,也无进位,无借位。相当于二进制中的逻辑异或运算。也就是比较后,两者对应位相同则结果为“0”,不同则结果为“1”。如100101除以1110,结果得到商为110,
余数为1。
模 2 除法计算过程:
1.被除数首位是几商就上几;
2.异或运算;
3.异或后首位一定是0,舍弃掉这个0首位;
4.补末位(落数),再上商。
例1:1011 0010 000 模二除 1100 1
例2:1111000除以1101:
在这里插入图片描述

循环冗余校验

循环冗余校验(英语:Cyclic redundancy check,通称“CRC”)是一种根据网上数据包或计算机文件等数据产生简短固定位数校验码的一种散列函数,主要用来检测或校验数据传输或者保存后可能出现的错误。生成的数字在传输或者存储之前计算出来并且附加到数据后面,然后接收方进行检验确定数据是否发生变化。一般来说,循环冗余校验的值都是32位的整数。
CRC为校验和的一种,是两个字节数据流采用二进制除法(没有进位,使用XOR来代替减法)相除所得到的余数。其中被除数是需要计算校验和的信息数据流的二进制表示;除数是一个长度为的预定义(短)的二进制数,通常用多项式的系数来表示。在做除法之前,要在信息数据之后先加上个0.
① 收发双方约定好一个生成多项式G(x);
② 发送方基于待发送的数据和生成多项式计算出差错检测码(冗余码)将其添加到待传输数据的
后面一起传输:
③ 接收方通过生成多项式来计算收到的数据是否产生了误码;
● 算法要求生成多项式必须包含最低次项
下面的表格略去了“初始值”、“反射值”以及“最终异或值”。
对于一些复杂的校验和来说这些十六进制数值是很重要的,如CRC-32以及CRC-64。通常小于CRC-16的CRC不需要使用这些值。
通常可以通过改变这些值来得到各自不同的校验和,但是校验和算法机制并没有变化。
CRC标准化问题
由于CRC-12有三种常用的形式,所以CRC-12的定义会有歧义
在应用的CRC-8的两种形式都有数学上的缺陷。
据称CRC-16与CRC-32至少有10种形式,但没有一种在数学上是最优的。
同样大小的CCITT CRC与ITU CRC不同,这个机构在不同时期定义了不同的校验和。

练习题

发送数据:
例:待发送的信息为101001,生成多项式为G(x)=x³ + x² + 1 (1101),计算编码后的信息。
1.构造被除数
待发送信息后面添加生成多项式最高次数个0
2.构造除数
生成多项式各项系数构成的比特串
3.做模二除法运算
4.检查余数
余数的位数应与生成多项式最高次数相同,
如果位数不够,则在余数前补0来凑足位数。
接收数据:
例:接收到的信息为101101001,生成多项式为G(x)=x³ + x² + 1 (1101),判断传输是否有误码。
101101001 ÷ 1101 ,商,余1
1.构造被除数
接收到的信息就是被除数
2.构造除数
生成多项式各项系数构成的比特串
3.做模二除法运算
4.检查余数
余数为0,传输过程无误码;
余数不为0,传输过程产生误码。

在( D )校验方法中,采用模2运算来构造校验位。(2019上半年试题)
A.水平奇偶
B.垂直奇偶
C.海明码
D.循环冗余

海明校验

海明校验(Hamming Code)是一种在计算机科学和通信领域广泛使用的错误检测编码方法,由理查德·卫斯里·海明(Richard Wesley Hamming)于1950年提出。它的目的是通过增加额外的校验位来检测并在某些情况下纠正数据传输或存储过程中的单比特错误。海明校验的基本思想是将数据划分为多个长度较短的数据块,并为这些数据块计算出若干个校验位,然后将数据块和校验位一起发送或存储。这样,接收端或读取端就可以通过这些校验位来检测或纠正错误。

原理

1.确定校验位数量:首先,需要确定可以检测并纠正错误的校验位数量。如果想要检测并纠正单比特错误,校验位的数量至少为3(这是因为要定位错误发生在哪个位置,至少需要log2(data位数 + 1)位校验位,加上一位用于检测奇偶,通常选择比这个最小值稍大的2的幂次减去数据位数的结果)。
2.分配校验位位置:海明码中数据和校验位的位置遵循一定的规则,通常校验位的位置是2的幂(1, 2, 4, 8,…)。例如,对于7位数据,可能选择4位校验位,它们将放置在第1、2、4、8位上,总共11位编码(7位数据+4位校验)。
3.计算校验位值:每个校验位的值是由它所覆盖的数据位决定的,具体来说,第i位校验位是其覆盖的所有位(包括数据位和已计算出的校验位,且这些位的编号包含第i位的二进制表示)的异或(XOR)结果。例如,第1位校验位是所有位编号中包含1的位进行异或。
4.错误检测与纠正:接收方收到海明码后,重新计算所有校验位。如果所有校验位的计算结果都为0,则认为没有错误。如果有任何一个校验位计算结果不为0,可以通过校验位确定错误发生的位置,并进行纠正。因为每个数据位都被多个校验位覆盖,通过比较哪些校验位的计算结果不匹配,可以唯一确定错误位。
设数据位是n位,校验位是k位,则n和k必须满足以下关系:
2k - 1>= n + k
海明码的编码规则如下:
设 k个校验位为Pk,Pk-1…P1,n个数据位为Dn,Dn-1,…,D1,对应的海明码为Hn+k,Hn+k-1,…,H1
(1)校验码Pi要放在2i-1的位置。
(2)海明码中的任何一位都是由若干个校验位来校验的。
(3)被校验的海明位的下标等于所有参与校验该位的校验位的下标之和,而校验位由自身校验。

练习题

待传送的信息为1010,若采用海明校验,则奇校验规则下的海明码是( A )。
A 0110010
B 0110011
C 1110010
D 1110011

1.5.1 存储的层次结构

存储器的层次结构主要分为四个层次,从CPU寄存器到辅存(辅助存储器),分别是:
1.CPU寄存器:位于CPU内部,是访问速度最快但容量最小的存储器,用于存储临时数据和寄存器之间的传递。
2.高速缓存(Cache):位于CPU和主存之间,访问速度较快,容量较小,用于存储最近访问的数据和指令。
3.主存(内存):位于高速缓存和辅存之间,访问速度较慢,容量较大,用于存储程序和数据。
4.辅存:位于计算机外部,访问速度最慢,容量最大,用于长期存储程序和数据。
这个层次结构的核心在于每一层都作为其下一层的缓存,即更快更小的存储设备作为更大更慢的存储设备的缓存。每一层都缓存来自较低一层的数据对象,以提高数据访问速度和效率。

练习题

在程序的执行过程中,Cache与主存的地址映射是由( C )完成的。((2017下半年试题)
A.操作系统
B.程序员调度(外存,主存,cpu寄存器汇编实现)
C.硬件自动
D.用户软件(任何一级都不能单纯用软件实现)

1.5.2 高速缓存(cache)

【冯诺依曼结构】
Cache位于CPU与主存之间,地址映射也是硬件完成的
● Cache对程序员来说是透明的,程序员无法操作
● 设置多级高速缓存Cache以提高命中率(访问主存的效率),先访问一级cache,然后二、三、四,都访问不到才去访问主存。
● 使用Cache改善系统性能的依据是程序的局部性原理
◎ 时间局部性:
被引用过一次的存储器位置在未来会被多次引用,主要体现是主要是循环。(for/while等)
◎ 空间局部性:
如果一个存储器的位置被引用,那么将来他附近的位置也会被引用,主要体现是顺序执行的过程。

int[] arr = {1,2,3,4,5}
int sum = 0;
for(int i = 0;i < arr.length; i++){
    sum += arr[i]
}
System.out.println(""+ sum);

for:时间局部性
arr:空间局部性

练习题

在CPU内外常设置多级高速缓存Cache其主要目的是( B )。(2019下半年试题)
A.扩大主存的存储容量
B.提高CPU访问主存数据或指令的效率
C.扩大存储系统的容量
D.提高CPU访问外存储器的速度 (外存和cpu之间还隔着 cache和主存,不搭边)

1.5.3 Cache的地址映射方法

直接相联映像

描述:主存的块与Cache块的对应关系是固定的
优点:硬件电路设计、地址变换比较简单
缺点:冲突率较高,灵活性差

全相联映像

描述:主存与Cache均分成大小相同的块,允许主存的任一块可以调入Cache存储器的任何一个块的控件中
优点:冲突率较低、主存的块调入Cache的位置不受限制,十分灵活
缺点:电路难于设计和实现,造价高,只适用于小容量的cache;无法从主存块号中直接获得Cache的块号,地址变换比较复杂,速度比较慢

组相联映像

描述:将Cache中的块再分成组,组采用直接相联映像方式,而块采用全相联映像方式。即主存任何区的0组智能存到Cache的0组中,1组智能存到Cache的1组中,以此类推,组内的块则采用全相联方式,即一组内的块可以任意存放。即主存一组中的任一块可以存入Cache相应组的任一块中。
优缺点:直接相连映像和全相连映像方式的折中

练习题
Cache的地址映像方式中,发生块冲突次数最小的是( A )。(2015年上半年)
A.全相联映像
B.组相联映像
C.直接映像
D.无法确定

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/660302.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

JAVA云HIS医院管理系统源码 云HIS系统源码 云HIS的优势 云HIS的发展

JAVA云HIS医院管理系统源码 云HIS系统源码 云HIS的优势 云HIS的发展 HIS系统&#xff0c;即医院信息系统&#xff08;Hospital Information System&#xff09;&#xff0c;在医院的运营和管理中扮演着至关重要的角色。关于HIS系统的溯源&#xff0c;简单从以下几个方面进行讲…

失落的方舟 命运方舟台服封号严重 游戏封IP怎么办

步入《失落的方舟》&#xff08;Lost Ark&#xff09;&#xff0c;这款由Smilegate精心打造的宏大规模在线角色扮演游戏&#xff08;MMORPG&#xff09;&#xff0c;您将启程前往阿克拉西亚这片饱经沧桑的奇幻大陆&#xff0c;展开一场穿越时空的壮阔探索。在这里&#xff0c;一…

zabbix客户端启用ping脚本 , 采集结果返回服务端

1.Zabbix-agent配置 (1) 查看自定义配置的目录位置 # more /etc/zabbix/zabbix_agentd.conf (2) 将配置的脚本放在指定的目录下 # cd /etc/zabbix/zabbix_agentd.d # vi get_ping.conf UserParameter=get_ping[*], /bin/ping -c 1 -W 1 $1 &> /dev/null &a…

一文读懂Apollo客户端配置加载流程

本文基于 apollo-client 2.1.0 版本源码进行分析 Apollo 是携程开源的配置中心&#xff0c;能够集中化管理应用不同环境、不同集群的配置&#xff0c;配置修改后能够实时推送到应用端&#xff0c;并且具备规范的权限、流程治理等特性。 Apollo支持4个维度管理Key-Value格式的配…

「异步魔法:Python数据库交互的革命」(二)

哈喽&#xff0c;我是阿佑&#xff0c;上篇文章带领了大家跨入的异步魔法的大门——Python数据库交互&#xff0c;一场魔法与技术的奇幻之旅&#xff01; 从基础概念到DB-API&#xff0c;再到ORM的高级魔法&#xff0c;我们一步步揭开了数据库操作的神秘面纱。SQLAlchemy和Djan…

如何使用 .htaccess 删除文件扩展名

本周有一个客户&#xff0c;购买Hostease的虚拟主机&#xff0c;询问我们的在线客服&#xff0c;如何使用 .htaccess 删除文件扩展名&#xff1f;我们为用户提供相关教程&#xff0c;用户很快解决了遇到的问题。在此&#xff0c;我们分享这个操作教程&#xff0c;希望可以对您有…

C# 数组/集合排序

一&#xff1a;基础类型集合排序 /// <summary> /// 排序 /// </summary> /// <param name"isReverse">顺序是否取反</param> public static void Sort<T>(this IList<T> array, bool isReverse false)where T : IComparable …

洗地机什么品牌质量好?家用洗地机排行榜

一年一度的大促节又到了&#xff0c;各大电商平台和实体店纷纷推出力度不小的折扣活动&#xff0c;吸引着消费者的关注和购买欲望。很多家庭也趁着这个机会&#xff0c;购置一些智能家居产品来提升生活品质。其中&#xff0c;洗地机作为近年来发展迅速的明星产品&#xff0c;受…

Mac安装tomcat

代码 brew install tomcat 运行结果如下&#xff1a; 如果要启动输入&#xff1a; brew services start tomcat

鸿蒙课程培训 | 讯方技术与鸿蒙生态服务公司签约,成为鸿蒙钻石服务商

3月15日&#xff0c;深圳市讯方技术股份有限公司与鸿蒙生态服务公司签署合作协议&#xff0c;讯方技术成为鸿蒙钻石服务商&#xff0c;正式进军鸿蒙原生应用培训开发领域。讯方技术总裁刘国锋、副总经理刘铭皓、深圳区域总经理张松柏、深圳区域交付总监张梁出席签约仪式。 作…

【全开源】防伪溯源一体化管理系统源码(FastAdmin+ThinkPHP和Uniapp)

一款基于FastAdminThinkPHP和Uniapp进行开发的多平台&#xff08;微信小程序、H5网页&#xff09;溯源、防伪、管理一体化独立系统&#xff0c;拥有强大的防伪码和溯源码双码生成功能&#xff08;内置多种生成规则&#xff09;、批量大量导出防伪和溯源码码数据、支持代理商管理…

3D模型展示适合哪些类型的产品?

3D模型展示特别适合那些需要全面展示产品细节和特性的商品&#xff0c;产品3D交互展示具有直观性、动态性、交互性等显著优势&#xff0c;可以通过51建模网一站式完成商品3D建模、3D展示、3D定制、AR试穿等功能&#xff0c;以下是一些适合使用3D模型展示的产品类型&#xff1a;…

低代码开发难吗?

在软件开发的多样化浪潮中&#xff0c;低代码开发平台以其简化的编程模型&#xff0c;为IT行业带来了新的活力。作为一位资深的IT技术员&#xff0c;我对低代码开发平台的易用性和强大功能有着深刻的认识。今天&#xff0c;我将分享我对YDUIbuilder这一免费开源低代码平台的使用…

29-ESP32-S3-WIFI_Driver-00 STA模式扫描全部 AP

ESP32-S3 WIFI_Driver 引言 ESP32-S3是一款集成了Wi-Fi和蓝牙功能的芯片。关于WIFI的部分&#xff0c;其实内容比我想象的要多得多。所以通常来说&#xff0c;如果你想要编写自己的Wi-Fi应用程序&#xff0c;最快捷的方法就是先找一个类似的示例应用&#xff0c;然后将它的相…

图片去水印工具(低调用哦)

一、简介 1、它是一款专业的图像编辑工具&#xff0c;旨在帮助用户轻松去除照片中不需要的元素或修复照片中的缺陷。无论是修复旧照片、消除拍摄时的不良构图&#xff0c;还是删除照片中的杂乱元素&#xff0c;都能帮助用户快速实现这些目标。其功能强大且操作简单&#xff0c…

继承--5.29

继承格式&#xff1a; package javatest2;public class people {int age;double workday;public people(int age, double workday) {this.age age;this.workday workday;} }package javatest2;public class student extends people {int studyday;public student(int age, d…

使用目标检测模型YOLO V9 OBB进行旋转目标的检测:训练自己的数据集(基于卫星和无人机的农业大棚数据集)

我看到YOLO V8中&#xff08;ultralytics版本8.2.18&#xff09;集成了YOLO V9&#xff0c;所以直接在YOLO V8 OBB的基础上实现YOLO V9 OBB&#xff0c;训练结果也出来了&#xff0c;但是评估指标比YOLO V8 OBB低一点点&#xff0c;不知道是不是哪里遗漏修改了......如有大神赐…

MAC M1 —— Install

文章目录 MAC M1 —— Install安装IDEA安装JDK安装Maven安装brew无法创建文件 /data/serverMac 修改终端用户名&#xff08;主机名&#xff09;PyCharm MAC M1 —— Install 安装IDEA 关键词&#xff1a;2020到2021.3的激活步骤。找下Download文件夹 安装JDK 在个人的电脑上…

06.深入学习Java 线程

1 线程的状态/生命周期 Java 的 Thread 类对线程状态进行了枚举&#xff1a; public class Thread implements Runnable {public enum State {NEW,RUNNABLE,BLOCKED,WAITING,TIMED_WAITING,TERMINATED;} } 初始(NEW)&#xff1a;新创建了一个线程对象&#xff0c;但还没有调用…

STL库--priority_queue

目录 priority_queue定义 prority_queue容器内元素的访问 priority_queue()常用函数实例解析 priority_queue内元素优先级的设置 priority_queue的常见用途 priority_queue又称为优先队列&#xff0c;其底层是用堆来进行实现的。在优先队列中&#xff0c;队首元素一定是当…