mybloger

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

1.1 备考策略

先建立体系,后整知识点

2.01 计算机组成与体系结构

这一章知识点比较多,同时在考试的时候,分值也考得比较多,占到上午考试的6分这么一个比例,由于上午考察的科目很多,所以六分的分值,已经算是比较高的分值了,在这一章节,主要会考的哪些方面的内容,下面可以看一下:
首先会考到的是数据的表示,数据的表示简单一点涉及到进制的转换,我们知道在计算机当中,所使用的都是二进制数据,但是在日常生活中,习惯用到的是十进制的,为了计算的方便,还提出了八进制,十六进制,那这些进制计算某些问题的时候有可能问到,比如在存储体系有计算用多少块芯片组成多大的存储空间,这类问题就会用到进制的问题,然后呢,在网络部分,计算ip地址,子网掩码这些数据的时候也会涉及到进制,所以呢,这一块进制是为了后面的知识做铺垫,直接考察到的,像原码,反码,补码,以及浮点这些计算

计算机结构其实涉及到的内容很多,但是真正考察比较多的,是cpu当中寄存器如何分的问题。哪些寄存器是放在运算器里面,哪些是属于控制器的寄存器,这些要区分的清楚。对于常见的一些,这种寄存器我们要了解它们基本的特性,它是做什么用的。

接下来会讲到Flymn分类法,Flymn分类是提出来很长时间了,一种对计算机进行分类的一种方法,这种分类方法把计算机分成了四种大的类别,但真正实际用的过程中,我们会发现没有分那么多的类别,类别只是理论上的东西。

CISC和RISC呢,是计算机的指令集,这两种指令集,它们的特点,需要区分开

流水线技术呢,主要是考察一些计算方面方面的问题

存储系统里面既有概念也有计算,需要了解

总线系统主要是了解,最基础的总线的分类和概念

可靠性这一块,串联、并联的可靠性的计算,以及串并混合的情况

而校验码主要是了解校验码是有什么作用的,常见的校验码有哪几种,像CRC校验码,海明校验码,它们各自会有什么特点,它的运算过程,编码解码又是怎么样的,这些东西是要求我们了解的

1、数的表示

R进制转十进制基本都是按权展开法

十进制转R进制使用短除法

原码,反码,补码,移码

在计算机中所使用的计算机编码,和我们日常生活中使用的编码数据,它们有一定的区别。下面是计算中所用到的几种编码;
原码,反码,补码,移码这些,原码怎么来算呢?就是我们把一个数组成二进制的表达形式,这是第一步,第二部就是把二进制的首位,最高位,一般呢我们是确定了一共多少个字节存这个数据,如果说是一个字节,八个bit,它的首位就是最高位,如果说转成的二进制不足八位,那就高位补0就可以了。比如说数字1,转成二进制也是1,那如果说是用一个字节来存储它,我们就会在左边补上7个0,最高位的这个就是符号位,对于正数而言符号位位0,对于负数而言符号位为1,所以如果是+1,它的原码就是0000 0001,-1就是1000 0001,那假如我们把1+(-1)结果应该是为0的,但是呢,用原码进行这样的操作,往往行不通。为什么行不通呢,我们把两个原码直接相加,,会变成1000 0010 ,就变成了-2的原码,所以呢像原码的这种操作方式,是不能用来直接在机器里面进行相关的运算的,所以呢提出来一些其他的编码方式,比如说反码

那反码呢,注意一点,也是区分正负,如果说是正数,它是和原码是完全一样,相等的。包括我们后面所讲的补码,正数的补码也是和原码完全相等的,负数就有差别,你比如说-1,它的反码怎么求呢?怎么体现呢?反码是这样来求的,先把符号位刨出来,单独处理了,符号位不动它,然后把后面所有位置按位取反,什么叫按位取反呢?就是一个位置原来是0,要变成1,原来是1要变成0,比如1的补码是0000 0001,-1的补码是1111 1110,相加的结果是1111 1111,那1111 1111 代表的是什么呢?首先代表它是一个负数吧,接着后面几个取反可以得到它的原始值是多少,0,说明呢,反码求解出来的是-0.其实呢,这与我们的结果是匹配的了,但是看起来呢,任然有一些怪异,就是0的话,一般讲的就是0,不分+0和-0。再来看到补码,补码刚才讲到,正数的补码和原码,反码是一样的,负数的补码呢,是在原码反码的基础上,+1,就比如-1的补码是,
1000 0001->1111 1110->1111 1111,这就是-1的补码,把两个补码相加,得到的是0000 0000,也就是+0,所以这才对。最后要看的是移码,注意一点,移码就是一个特定场合用的,它一般用来做什么呢?它用来做,浮点运算中的,编码。那移码是怎么产生的呢?它是在补码的基础上,把首位做取反,为什么要这么做呢?其实呢,我们可以画一条数轴,就明白,补码当中由于最高符号位负数符号位是1,正数符号位是0,这其实在数轴上表示,就有点混乱,颠倒了思想观念。但是如果我们反过来,在数轴上表现就非常漂亮了,就是正数的体现比负数要大一些。原来补码体现不出这一点,所以移码主要做了这么一件事情,同时它进行相关操作呢,也能得到正确的值。

最后看的是表示的范围,表示的范围也是经常考到的:
如果问你,1个字节的八位的来表示的原码,它的一个取值范围,反码又是个什么情况,补码又是一个什么情况?它们取值范围会有差别吗?就可以通过给出的表算出来。比如8位,

一个字节8位,如果采用原码表示正整数(含0),可以表达0-255,即 2^8=256,一共256种状态,从全0到全1的各种排列组合。如果要表示负数,则符号位需要占用一位(最高位,1代表负数,0代表正数),因此其绝对值最大范围为0-127,即2^7=128,一共正负各128种状态,如果不采用特殊处理,这时候0占用2个编码(10000000和00000000),数据表示范围为-127到-0及+0到127,这样总体上一个字节只有255种状态,因为其中0具有正0和负0之分,这不符合数学意义也浪费一个编码。

   除了以上的弊端,还有个原因是,早期硬件很昂贵,一位或者一个编码的浪费都是不可饶恕的,因此人们想到了另一种编码把负0利用起来,即当遇到负数时,采用补码来表示就可以解决这个问题,而遇到正数或0时还是保留原码表示。因此这个负0通过补码算法处理后自然而然地被利用起来,用来表示-128.  
posted on 2024-12-01 18:54  万能包哥  阅读(1)  评论(0编辑  收藏  举报