软件设计师-计算机组成结构-硬件组成

一.中央处理单元CPU

  • 中央处理单元的组成:由运算器、控制器、寄存器组和内部总线组成。
  • 中央处理单元功能:实现程序控制、操作控制、时间控制、数据控制功能。
  • 运算器组成:由算数逻辑单元ALU(实现对数据的算数和逻辑运算)、累加寄存器AC(运算结果或源操作数的存放区)、数据缓冲寄存器DR(暂时存放内存的指令或数据)、和状态条件寄存器PSW(保存指令运行结果的条件码内容,如溢出标志等)组成。
  • 运算器功能:执行所有的算数运算,如加减乘除等;执行所有的逻辑运算并进行逻辑测试,如与、或、非、比较等。
  • 控制器组成:由指令寄存器IR(暂存CPU执行指令)、程序计数器PC(存放指令执行地址)、地址寄存器AR(保存当前CPU所访问的内存地址)、指令译码器ID(分析指令操作码)等组成。
  • 控制器功能:控制整个CPU的工作,最为重要,包括程序控制、时序控制等。

二.数据的进制转换

  • 进制的表示:二进制、十六进制,一般在题目中会给出中文说明,如果没给出,注意二进制符号为0b,一般表示为0b0011,十六进制符号为0x或H,可以表示为0x18F或18FH。
  • R进制整数转十进制:位权展开法,用R进制数的每一位乘以R的n次方,n是变量,从R进制数的整数最低位开始,依次为0,1,2,3...累加;
  • 例如有6进制数5043,此时R=6,用6进制数的每一位乘以6的n次方,n是变量,从6进制数的整数最低位开始(5043从低位到高位排列:3,4,0,5),n依次为0,1,2,3,那么最终5043=3*6^0+4*6^1+0*6^2+5*6^3=1107。
  • 十进制转R进制:十进制整数(除以R倒取余数),用十进制整数除以R,记录每次所得余数,若商不为0,则继续除以R,直至商为0,而后将所有余数从下至上记录,排列成从左至右顺序,即为转换后的R进制数;
  • 例:有十进制数200,转换为6进制,此时200/6,得商为33,余数为2;因为商不等于0,因此再将商33/6,得商为5,余数为3;再将5/6,得商为0,余数为5;此时商为0,将所有余数从下到上记录,得532。
  • m进制转n进制:先将m进制转化为十进制,再将十进制转化为n进制,中间需要通过十进制中转,但下面两种进制间可以直接转化;
  • 二进制转八进制:每三位二进制数转换为一位八进制数,二进制数位个数不是三的倍数,则在前面补0(原则数值不变),如二进制数01101有五位,前面补一个0就有六位,为001 101,每三位转换为一位八进制数,001=1,101=1+4=5,也即01101=15。
  • 二进制转十六进制:每四位二进制数转换为一位十六进制数,二进制数位个数不是四的倍数,则在前面补0,如二进制数101101有六位,前面补两个0就有八位,为0010 1101,每四位转换为一位十六进制数,0010=2,1101=13=D,也即101101=2D。
  • 小数部分转换不考。

三.数的表示(不怎么考)

  • 机器数:各种数值在计算机中表示的形式,其特点是使用二进制计数制,数的符号用0和1表示,小数点则隐含,不占位置。
  • 机器数有无符号和带符号数之分。无符号数表示正数,没有符号位。带符号数最高位为符号位,正数符号位为0,负数符号位为1。
  • 定点表示法分为纯小数和纯整数两种,其中小数点不占存储位,而是按照以下约定:
  • 纯小数:约定小数点的位置在机器数的最高数值位之前。
  • 纯整数:约定小数点的位置在机器数的最低数值位之后。
  • 真值:机器数对应的实际数值。

四.数的编码方式

  • 带符号数有下列编码方式:
  • 原码:一个数的正常二进制表示,最高位表示符号,数值0的源码有两种形式:+0(0 0000000)和-0(1 0000000)。
  • 反码:正数的反码即原码;负数的反码是在原码的基础上,除符号位外,其他各位按位取反。数值0的反码也有两种形式:+0(0 0000000),-0(1 1111111)。
  • 补码:正数的补码即原码,负数的补码是在原码的基础上,除符号位外,其他各位按位取反,而后末位+1,若有进位则产生进位,因此数值0的补码只有一种形式+0=-0=0 0000000。
  • 移码:用作浮点运算的阶码,无论正数负数,都是将原码的补码的首位(符号位)取反得到移码。

五.浮点数的表示

  • 浮点数:表示方法为N=F*2^E,其中E称为阶码,F称为尾数;类似于十进制的科学计数法,如85.125=0.85125*10^2,二进制如101.011=0.101011*2^3。
  • 在浮点数的表示中,阶码为带符号的纯整数,尾数为带符号的纯小数,要注意符号占最高位(正数0负数1),其表示格式如下:
  • 阶符 | 阶码 | 数符 | 尾数
  • 很明显,与科学计数法类似,一个浮点数的表示方法不是唯一的,浮点数所能表示的数值范围由阶码确定,所表示的数值精度由尾数决定。
  • 尾数的表示采用规格化方法,也即带符号尾数的补码必须为1.0xxxx(负数)或者0.1xxxx(负数),其中x可为0或1。
  • 浮点数的运算:
  • 对阶(使两个数的阶码相同,小阶向大阶看齐,较小阶码增加几位,尾数就右移几位)
  • 尾数计算(相加,若是减运算,则加负数)
  • 结果规格化(即尾数表示规格化,带符号尾数转换为1.0xxxx或0.1xxxx)。

六.算数运算和逻辑运算

  • 数与数之间的算数运算包括加、减、乘、除等基本算数运算,对于二进制数,还应该掌握基本逻辑运算,包括:
  • 逻辑与&:0和1相与,只要由一个为0结果就为0,两个都为1才为1。
  • 逻辑或|:0和1相或,只要有一个为1结果就为1,两个都为0才为0。
  • 异或:同0非1,即参加运算的二进制数同为0或者同为1结果为0,一个为0另一个为1结果为1。
  • 逻辑非!:0的非是1,1的非是0。
  • 逻辑左移<<:二进制数整体左移n位,高位若溢出则舍去,低位补0。
  • 逻辑右移>>:二进制数整体右移n位,低位溢出则舍去,高位补0。

七.校验码

  • 码距:就单个编码A:00而言,其码距为1,因为其只需要改变一位就变成另一个编码。在两个编码中,从A码到B码转换所需要改变的位数称为码距,如A:00要转换为B:11,码距为2。一般来说,码距越大越利于纠错和检错。
  • 奇偶校验码:在编码中增加一位校验位来使编码中1的个数为奇数(奇校验)或者偶数(偶校验),从而使码距变为2。例如:
  • 奇校验:编码中,含有奇数个1,发送给接收方,接收方收到后,会计算收到的编码有多少个1,如果是奇数个,则无误,是偶数个,则有误。
  • 偶校验同理,只是编码中有偶数个1,由上述,奇偶校验只能检1位错,并且无法纠错。

七.循环冗余校验码CRC

  • CRC只能检错,不能纠错,其原理是找出一个能整除多项式的编码,因此首先要将原始报文除以多项式,将所得的余数作为校验码加在原始报文之后,作为法伤数据发给接收方,其编码格式为:
  • 由此可知,CRC由两部分组成,左边为信息码(原始数据),右边为校验码。校验码是由信息码产生的,校验码尾数越长,校验能力越强。求CRC编码时,采用的是模2运算(按位运算,不发生借位和进位)。
  •  例:原始报文为“11001010101”,其生成多项式为:“x^4+x^3+x+1”。对其进行CRC编码后的结果为?
  • 解答:首先根据多项式得出除数11011,在原始多项式后面加上多项式最高指数个数个0,即4个0,和除数进行模2除法(异或),商一直上1,最终得出四位的余数为0011,最终编码为11001010101 0011,最后发送出去。
  •  接收方将收到的数据110010101010011与多项式的11011进行模2运算,若余数为0,说明校验正确,数据传输正确。

答案:A

 八.海明校验码

  •  

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值