第一章:计算机系统概述
一:数据表示与编码
我们所说的数据表示,当然指的是计算机中的,那么计算机中的数据表示用的就是二进制其
中二进制的表示方式对于人来说过于冗长,于是有了八进制和十六进制,八、十六进制是给人用
的。二进制有源码、 反码、补码之说(ps:学好微源方法之一:随意给出一个数在10s内都可
以转换成二进制数)。进制:简单来说就是“逢X进1,借1当X”,如:十进制:逢十进一,借一
当十,二、八、十六进制 也是这样的。进制了解了,那么我们来说一说进制转换。
1.数制
进制的表示:八进制一般以“0开头”,十六进制一般以“0x”开头,如果在数字后什么也不加的
话,默认为十进制。如:24的其它进制的写法:二进制:0001 1000B,八进制:0030Q
十六进制:0018H
十进制(D) | 二进制(B) | 八进制(O/Q) | 十六进制(H) |
---|---|---|---|
0 | 0000 | 0000 | 0 |
1 | 0001 | 0001 | 1 |
2 | 0010 | 0002 | 2 |
3 | 0011 | 0003 | 3 |
4 | 0100 | 0004 | 4 |
5 | 0101 | 0005 | 5 |
6 | 0110 | 0006 | 6 |
7 | 0111 | 0007 | 7 |
8 | 1000 | 0010 | 8 |
9 | 1001 | 0011 | 9 |
10 | 1010 | 0012 | A |
11 | 1011 | 0013 | B |
12 | 1100 | 0014 | C |
13 | 1101 | 0015 | D |
14 | 1110 | 0016 | E |
15 | 1111 | 0017 | F |
2.进制转换
(1).非十(二、八、十六)转十
位权:从右往左依次为:几进制的n次方(从0开始计数),如八进制:0234,从左往右,4在
【8的0次方上】所以为4 x 80,3在【8的1次方上】,所以为3x81,2在【8的2次方上】,所以
为2x82,最后结果为4x80+3x81+2x82=4+24+128 = 156,其它进制也是如此。二进制就是2
的次方,16进制就是16的次方。适用于所有的进制
(2).十进制转非十
需要熟练记忆2、8、16的n(0<n<11)次方都是多少,如十进制转二进制:127,他在128
(27与26)64之间,所以127 = 64 +32 +16 + 8 + 4 + 2 + 1,所以二进制表示方
式为:0111 1111;
(3).非十转非十
二进制转八进制:
0110 0110--->从右往左三位一组,不够向前补0
--->001 100 110--->八进制:0146
八进制转二进制:一拆为三;
二进制转十六进制:
0110 0110--->从右往右左位一组,不够最补0
--->0110 0110--->十六进制:66
十六机制转二进制:一拆为四;
3.二进制数的编码
机器码: | 一个数在计算机中表示形式 |
---|---|
真值: | 一个数在纸上的表示方式 |
机器字: | 如:+000 0001叫机器字 |
无符号数: | 默认是正数,没有符号位,范围:0≤N≤65535 |
有符号数: | 最高位为符号位,1表示负数,0表示正数 |
有符号数:
有符号数指的是机器码,有正负,那么原反补码也就可以叙述了,因为**原反补只有在负数的情况下是不同的,正数的原反补是一样的,
原码:
最高位为符号位,如机器字长为8,+1 = +000 0001B,则[+1]原=0000 0001;
[-1]原=1000 0001但是,+0和-0的原码不一样耶
[+0]原=0000 0000;
[-0]原=1000 0000;
原码通俗易懂,但是运算起来格外的复杂,所以计算机在运算的时候用的不是原码运算;
反码:
对于二进制数,正数的反码就是它的本身,负数的原码就是,符号位不变,其他位按位取
反,即1变0,0变1;[+1]反=0000 0001B ;[-1]反=1111 1111B;
+0和-0的反码也不一样
[+0]反=0000 0000B ;
[-0]~反~=**1**111 1111B,
计算机运算时不用反码进行运算。
补码:
对于二进制数来书:正数的补码就是他本身,负数的补码是反码+1得到的。举一个调整时钟
的例子,一个时钟比正常时间快了1小时,比如现在时钟指向1点,真实时钟指向12点,那么
我们可以顺时针转11个刻度调转到12点,也可以逆时针1个刻度调转到12点,(感兴趣的小
伙伴可以去了解一下,这里就不详细赘述了)补码就是采用了这样的思想,将负数转化为正
数,减法转换为加法,补码的+0与-0是一样的,这里设计到溢出问题所以补码是一样的(溢
出问题放到补码运算那里说),这样在计算机中实现起来就比较方便了。
[+56]补=0011 1000B;
[-56]补=1100 1000B;
已知补码求真值:举个例子:
[x]补 =0111 1111B 则:x = +111 1111B = +127
4.补码运算
[X+Y]补=[X]补+[Y]补;
[X-Y]补=[X]补+[-Y]补;
溢出:运算结果超出了机器位数所能表示的范围(一般情况下:带符号数才考虑溢出问题)
溢出的判断方式:
如果最高位和次高位同时有进位或者无进位,说明无溢出(双符号法),将多出的一位丢掉,如
果最高位和次高位其中一位有进位,则说明有溢出,当最高位有进位,次高位无进位,这是产生
的溢出为正溢出,当最高位无进位,次高位进位,这时产生的溢出为负溢出(单符号法)。
例:
(-33)+(+15)
1101 1111 [-33]补
0000 1111 [+15]补
1110 1110 结果:[-18]补
(-33)+(-15)
1 101 1111 [-33]补
1 111 0001 [15]补
1 101 0000 结果:[-48]补
加减法解决了,来看一下乘除法
乘法和十进制的乘法运算规则一致,只是这里的乘法运算用的是二进制,除法运算,和十进
制一样列出除法运算的式子,借一当二。
5:十进制的编码
BCD码(8421码):二进制转换八、十六进制比较方便,但是日常生活中,
人们习惯使用十进制,在某些领域,必须需要使用十进制来表示数据,
在运算时,使用二进制运算,在数据输入输出时,采用十进制,这时,
人们就提出了一个比价适合十进制系统的二进制代码的特殊格式这就是BCD码。
很简单,看几个例子就理解BCD码了,不会超过9。十进制的每一位:用4位二进制表示。
十进制 | BCD码 |
---|---|
0 | 0000 |
1 | 0001 |
2 | 0010 |
3 | 0011 |
4 | 0100 |
5 | 0101 |
6 | 0110 |
7 | 0111 |
8 | 1000 |
9 | 1001 |
压缩BCD码:一个字节中存放2位十进制的BCD码,如:4-->0000 0010;
43--->0010 1011,43用一个字节进行表示。
非压缩BCD码:一个字节中只存放1位十进制BCD码,如:4-->0000 0000 0000 0010;
43----0000 0000 0000 0010 0000 0000 0000 1011;
43用两个字节进行表示;
二、逻辑电路
1.基本逻辑门电路
着重记忆国标图形,不过多赘述,以后在说。
2.译码器
将数字代码翻译成它代表的文字、数字、人名、地域等过程叫做译码,完成译码功能的电路称为译码器,下面译码器称为“38译码器”,使能端:是他能干活的端口,满足要求则工作,反之,不工作。G1高电平有效G2A、G2B低电平有效,CBA数据输入端,根据输入的编码,选择不同的输出Yi有效(低电平);
在译码器有效的情况下,CBA对应的输出:
C B A | 译码输出 |
---|---|
0 0 0 | Y0=0 |
0 0 1 | Y1=0 |
0 1 0 | Y2=0 |
0 1 1 | Y3=0 |
1 0 0 | Y4=0 |
1 0 1 | Y5=0 |
1 1 0 | Y6=0 |
1 1 1 | Y7=0 |
x x x | Y0~7=0 |
3.三态电路
是计算机记忆装置的基本单元,也是构成时序电路的基础
三、计算机系统概述
1、隐藏副本《计算机的发展历史》
计算机由软件系统和硬件系统组成,1946年,冯诺依曼在《电子计算机装置逻辑初探》中率先提出“存储程序控制”的概念,因此又称存储程序的计算机为冯诺依曼式计算机,这种设计思想沿用至今。冯诺依曼式计算机特点:
- 计算机由运算器、控制器、存储器、输入设备、输出设备五大部分组成。
- 指令和数据均采用二进制编码表示,采用二进制运算。
- 采用存储程序的方式,程序和数据放在同一存储器中。
- 指令在存储器中按其执行的顺序进行存放,由程序计数器指明要执行的指令地址,自动的从存储器中取出指令并执行。
- 计算机以运算器为中心,输入、输出设备与存储器中之间的数据传送都要经过运算器。
简述五大部件:
- 运算器:用来完成算术运算和逻辑运算,运算器的核心是算术逻辑运算单元,简称ALU;
- 控制器:计算机的指挥中心,按照人们预先确定的操作步骤,控制计算机各个部件有条不紊的进行工作。控制器包括:指令寄存器、指令译码器、时序控制器。
- 存储器:一个记忆装置,主要用来存放程序和数据。
- 输入设备:将人们编好的程序和原始数据输入到计算机中去,并且转换成计算机内部所能接收和识别的二进制编码格式。
- 输出设备:将计算机执行的结果以人或其他设备能接受的方式输出计算机。
- 随着电路技术的飞速发展,早期计算机系统中的运算器和控制器是分开的,如今运算器和控制器集成在一块电路中,被称为中央处理器(Central Processing Unit)。
2、概念
2.1I/O接口:
在早期的计算机系统中,外设种类较少,且CPU执行的任务较为简单,所以CPU直接对外设
进行管理与控制。随着计算机技术的不断发展和应用的日益广泛,外设门类品种大大增加,且
性能各异、操作复杂,这些功能能繁多的外设工作原理、工作速度不同,所采用的信号形式、数
据传送形式也不同。如果仍日 CPU直接管理外设,则会使主机陷入与外设打交道的沉重负担之
中。为了解决以上矛眉,在CPU与外设之间设置了简单的接口电路,后来逐步发展成为独立的接口
和设备控制器,把对外设的控制任务交给接口去完成**,从而大大地减轻了主机的负担,简化了
CPU 对外设的控制和管理。**I/O接口,又称适配器,存在于CPU与外设之间,是CPU与外围设备
进行信息交换的中转站。外围设备通过I/O接口连接在系统总线上。它保证外围设备采用证算机
系统所要求的形式发送和接收信息
2.2存储系统:
主存储器 | 由半导体材料组成的随机读写存储器,可由CPU直接访问,存取速度快但是容量小,一般用于存放当前正在执行的程序和数据。 |
---|---|
辅助存储器 | 又称外存器,容量大,价格低,存取速度慢,不能由CPU直接访问,一般用来暂时存放CPU不参与运行的程序和数据,这些程序和数据需要时可传送到主存,因此他是主存的补充和后援,常见外存有:磁盘、光盘、磁带等 |
高速缓冲器Cache | 为了使访问存储器的速度能与CPU的速度匹配,在主存和CPU之间增设了高速缓冲存储器,Cache存储速度比主存更快,容量更小,用来存放当前正在执行的程序中活跃部分 |
内存储器 | 用来存储基本输入、输出系统的只读存储器ROM,内存储器是存储程序和数据的地方,内存储器的容量以字节为单位计算,计算机的内存储器容量越大可同时运行的程序就越多,速度越快。 |
其他 | 为了提高计算机系统的性能,还出现了并行处理机,流水线处理机等多新型的计算机系统结构。 |
2.3单位
位: | 计算机内部最小的数据存储的最小单位,用“b”来表示,音译为比特 |
---|---|
字节 | 最基本的存储单位,也是计算机中数据处理的基本单位 |
字 | 计算机在进行数据处理时,一次存取、加工和传送的数据长度称为字 |
字长 | 比如我们所说的64位、32位计算计算机。 |
1KB = 210B = 1024B,1MB = 220B |