计算机基本原理 学习笔记(二)

本篇目录

接上)

三、二进制

1.字节

2.数字的表示

3.内存地址

4.字符的表示

四、算术逻辑单元ALU

1.算术单元AU

(1)半加器

(2)全加器

(3)制作8位加法器

2.逻辑单元LU

3.符号表示

总结


接上一篇 学习笔记(一) 。 

三、二进制

1.字节

一个二进制位(1 bit)只能表示true或者false两种状态,如果想要表示更多的信息,就需要更多的二进制位。比如,8个二进制位就能表示256个不同的数(2 的8次方)。在早期的8位计算机中,数据通常以8个二进制位为单位进行处理,如今的64位计算机中,数据通常以64个二进制位为单位进行处理。8个二进制位是很常用的大小,于是就有一个专门的名字:字节(Byte),1 Byte = 8 bit 。

一个字节的只能表示256个不同的数字,这不算很多,还有更大的单位。比如,1kB =2的10次方 字节 = 1024Byte ,1MB = 2的10次方 kB = 1024kB 。但由于人们日常使用十进制,经常有类似1kg = 1000g 、1km = 1000 m 这样的换算关系,因而也有人会说 1kB=1000B ,1MB = 1000kB 。后者的说法并不改变二进制的实质。

2.数字的表示

计算机使用二进制表示数字,包括正数与负数、整数与浮点数(即小数)。日常使用的十进制数字在计算机中会存储为对应的二进制,如11(十进制)对应 1011B(B表示二进制)。

整数的表示有多种编码方式,如今在计算机中常用的是补码(这种编码方式可以将正数与负数的计算统一起来)。数字的最高位用来表示正负,1表示负数,0表示正数。这样,8个二进制位就可以表示整数-128 ~ 127 。而32个二进制位可以表示的数字范围大概是负20亿至正20亿。

浮点数(即小数点在数字之间浮动)也有许多种表示方式,最常见的是IEEE754标准。它采用类似于科学计数法的方式来表示浮点数,在32位表示的浮点数中,最高位表示正负(1负0正),然后用8位存储指数(科学计数法中十的指数),剩下的低23位存储有效数字。

3.内存地址

内存中的每一块空间,都要有一个地址编号(比如1101B),CPU通过这个编号就能访问对应的内存空间。而这个地址编号,如果用8个二进制位表示,那么CPU一共能访问的内存空间是256个。如果存在更多的空间,那么8个二进制位的内存地址编号就不够用了。

这就好比,你负责管理一个城镇,每一户居民都要有一个门牌号,一开始城镇里有500户,于是你印制的门牌号就是001~500 ;后来城镇扩张,有了2000户,这时候三位数(即三个十进制位)的门牌号就不够用了,你需要印制四位数的门牌号(即0001-2000)才可以。

计算机能访问到多大的内存空间,这是CPU的寻址能力,这对计算机很重要。

4.字符的表示

计算机使用二进制表示字符。

ASCII码,即美国信息交换标准代码,发明于1963年,使用7位来表示包括大小写字母、数字、标点符号以及一些控制符(比如换行符)在内的各种字符,一共128个。这足够表示英文字符了,使得全世界的计算机能够统一交换信息。但是世界上不同国家都需要表示自己的文字,而一个字节有8位,于是不同国家都使用一个字节的128-255位(即将最高位置为1)来表示本国的字符。但是汉字有上千个不同字符,无法仅仅用7位或者一个字节来表示。

Unicode是一个统一的编码方案,设计于1992年,采用16位来表示字符,足够表示世界各民族的文字,甚至还能表示一些表情。

计算机中不仅是字符,其它格式的内容如音乐、视频、图片、网页等也都是用二进制表示的。


四、算术逻辑单元ALU

数据的表示是为了计算,计算由“算术逻辑单元”(即ALU)处理。ALU有2个单元:1个算术单元(AU)和1个逻辑单元(LU)。ALU可以由基本的逻辑门组成。

1.算术单元AU

算术单元AU负责处理数字操作,比如四则运算。

(1)半加器

先来看最简单的实现1 位加法运算的电路,它有两个输入,每个输入是一个二进制位;运算结果有可能产生进位,所以输出应该有两项(进位值 和 求和结果)。下面是运算的输入输出表。

半加器输入输出表
输入 输出
 A   B  进位 总和
0 0 0 0
0 1 0 1
1 0 0 1
1 1 1 0

可以用逻辑门来组装电路,实现这个运算功能。(而逻辑门是用晶体管实现的。)这个电路实现了一位二进制位的加法,称为半加器。

(2)全加器

如果要求和的数字超过了1位二进制,那么就要使用全加器了。半加器的运算产生了进位值,那么在计算下一列(二进制与十进制的加法都可以用竖式来计算)以及之后的每一列的时候,都需要考虑前一列的进位值。于是,对于全加器来说,输入项有三项:输入A、输入B,以及前一列的进位值;输出项仍然是两项:和、进位值。

全加器输入输出表
A B C 进位
0 0 0 0 0
0 0 1 0 1
0 1 0 0 1
1 0 0 0 1
0 1 1 1 0
1 1 0 1 0
1 1 1 1 1

全加器可以用逻辑门与半加器来组合实现。

(3)制作8位加法器

如果要将两个8位的数字A和B相加求和,只要利用1个半加器和7个全加器,依次进行8个二进制位的加法就可以了。这样的加法电路就是“8位行波进位加法器”。最后的结果如果有进位,说明求和的结果产生了9位数(二进制),这就造成了溢出,会导致错误。

算术单元可以做加法、减法等一系列操作(用操作码表示进行的操作类型),这些操作的运算电路都是由逻辑门构成的。简单的算术单元(比如恒温器中的)没有专门的电路来处理乘除法(复杂的、贵的有,比如笔记本电脑和手机中的),而是利用多次的加减法来完成。

2.逻辑单元LU

逻辑单元执行逻辑操作,比如判断一个数字是否为0 。

3.符号表示

继续向上抽象,一个能进行8位运算的算术逻辑单元的符号表示如图。


总结

本篇内容:

1.二进制(字节、数字的表示、内存地址、字符的表示)

2.算术逻辑单元

①算术单元:半加器、全加器、8位行波进位加法器;②逻辑单元;③符号表示

猜你喜欢

转载自blog.csdn.net/Dr_Cheeze/article/details/127906921