第1章 计算机基础知识 1.4 二进制数的运算及其加法电路 1.4.1二进制数据算术运算规则 (1) 加法运算规则 (1) 加法运算规则 0+0=0 例如: 0101 0+1=1 +) 0001 1+0=1 0110 1+1=0 并产生进位 (2) 减法运算规则 0-0=0 例如: 1011 0-1=1 并产生借位 -) 0101 1-0=1 0110 1-1=0
第1章 计算机基础知识 (3)乘法运算规则 例如: 1101 0X0=0 X) 0101 0X1=0 1101 1X0=0 1101 (3)乘法运算规则 例如: 1101 0X0=0 X) 0101 0X1=0 1101 1X0=0 1101 1X1=1 1000001 (4)除法运算规则 1101 例如: 1110101/1001 1001 1110101 1001 1011 01001 0000 0000
第1章 计算机基础知识 1.4.2半加器电路设计 问题描述:对两个二进制数进行加法运算,产生1位和和1位进位。 定义输入输出变量:输入x,y,输出S(sum),C(carry)。 真值表: x y C S 0 0 0 0 0 1 0 1 1 0 0 1 1 1 1 0 逻辑表达式: S=xy+xy,C=xy,由此可以化出逻辑图如下:
第1章 计算机基础知识 半加器电路图: 半加器符号: x y S y C x =1 & c HA s
第1章 计算机基础知识 1.4.3全加器电路设计 1位全加器真值表: a b ci co s 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 1 0 1 0 0 0 1 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1 1位全加器框图 a b co FA ci s 1位全加器逻辑表达式(电路图见p13) S= /a/bci+/ab/ci+a/b/ci+abci=a b ci Co=/abci+a/bci+ab/ci+abci=ab+aci+bci
第1章 计算机基础知识 1.4.4二进制数的加法电路设计 a<3:0> b<3:0> a<3> b<3> a<2> b<2> a<1> b<1> a<0> b<0> a b a b a b a b co co FA ci co FA ci co FA ci co FA ci ci s s s s s<3> s<2> s<1> s<0> s<3:0> 由多个一位全加器把进位信号串联而成,每个全加器都有2级门的延迟时间,故这种n位加法器有2n级门的延迟时间。
第1章 计算机基础知识 1.4.5二进制数值数据的编码方法 (1)基本概念:无符号数、有符号数、机器数、真值。 机器中,数的符号用“0”、“1” 表示,最高位作符号位,“0”表示“+”,“1”表示“-”。 机器数:机器中数的表示形式,其位数通常为8的倍数。 真值: 机器数所代表的实际数值。 举例:一个8位机器数与它的真值对应关系如下: 真值: X1=+84=+1010100B X2=-84= -1010100B 机器数:[X1]机= 01010100 [X2]机= 11010100 有符号数通常使用三种表示方法:原码、反码和补码。 (2)原码(True Form): 最高位为符号位,0表示 “+”,1表示“-”,数值位与真值数值位相同。 例 8位原码机器数: 真值: x1 = +1010100B x2 =-1010100B 机器数: [x1]原 = 01010100 [x2]原 = 11010100 原码表示简单直观,但0的表示不唯一,加减运算复杂。 提问:五大功能部件都是什么? 是主板、cpu、内存、硬盘、显卡、显示器、键盘、鼠标吗?
第1章 计算机基础知识 1.4.5二进制数值数据的编码方法 (3)反码(One’s Complement): 正数的反码与原码表示相同。负数反码符号位为1,数值位为原码数值各位取反。 例 8位反码机器数: x= +4 : [x]原= 00000100 [x]反= 00000100 x= -4 : [x]原= 10000100 [x]反= 11111011 (4)补码(Two’s Complement): 正数的补码表示与原码相同。负数补码的符号位为1,数值位等于反码加1。 例:求 8位补码机器数: x=+4 [x]原=[x]反=[x]补= 00000100 x=-4 [x]原 = 10000100 [x]反 = 11111011 [x]补 = 11111100 补码表示的优点: 0的表示唯一,加减运算方便。 运算器、控制器、存储器通常是使用电子线路实现出来的,安装在一个金属机柜内或者印制电路板上,被称为计算机的主机。运算部件和控制部件,合称为中央处理器(CPU,center processing unit),又称其为计算机的处理机(processor)。输入设备和输出设备通常是使用精密机械装置和电子线路共同制作出来的,也可以合称为输入输出设备,又称其为计算机的外围设备。
第1章 计算机基础知识 1.4.5二进制数值数据的编码方法 (5)8位机器数表示的真值:
第1章 计算机基础知识 1.4.5二进制数值数据的编码方法 (6)各种编码方法的表数范围: n+1位二进制编码x表示的整数范围: 原码、反码:-2n<x<2n 补码:-2n≤x<2n 例如: 8位原码、反码的表数范围是-127~+127,补码的表数范围是-128~+127; 16位原码、反码的表数范围是-32767~+32767,补码的表数范围是 -32768~+32767 (7)各种编码之间的相互转换: [x]原 [x]补: x≥0, [x]补= [x]原 ;x<0,符号位不变,数值位取反+1。 例1:[X1]原=01111111=7FH,[X1]补=01111111=7FH [X2]原=11111111=FFH,[X2]补=10000001=81H 例2:[X1]原=59H,[X2]原=D9H,求真值? X1=+1011001B=+89 X2=-1011001B=-89 例3:[X1]补=59H,[X2]补=D9H,求真值? X1=+1011001B=+89 X2=-0100111B=-39
第1章 计算机基础知识 1.4.5二进制数值数据的编码方法 原码、反码、补码表示小结: 正数的原码、反码、补码表示均相同, 符号位为0,数值位同数的真值。 零的原码和反码均有2个编码,补码只有1个编码。 负数的原码、反码、补码表示均不同, 符号位为1,数值位:原码为数的绝对值 反码为每一位均取反码 补码为反码再在最低位+1 由[X]补求[-X]补:每一位取反后,再在最低位+1
第1章 计算机基础知识 1.4.6补码加法器/减法器电路 (1)补码加减法的运算规律: [X+Y]补=[X]补+[Y]补 [-Y]补=对[Y]补逐位取反(包括符号位),再在最低位加1。 例:设x=1010,y=-0101,则[x]补=01010,[y]补=11011, [x]补+[y]补=00101 [x+y]补= [1010-0101]补= [0101]补=00101, 由此可见[x+y]补= [x]补+[y]补 例:设x=0101,则-x=-0101,[x]补=00101,[-x]补=11011, 所以[-x]补=对[x]补逐位取反,再在最低位加1。
第1章 计算机基础知识 1.4.6补码加法器/减法器电路 (2)补码加减法的电路实现: 8位二进制加法器电路:
第1章 计算机基础知识 8位二进制数补码减法器电路: 可控的8位二进制数补码加减法器(SUB=0,加法,SUB=1,减法):
第1章 计算机基础知识 1.4.6补码加法器/减法器电路 (3)加减法运算的溢出问题: 当运算结果超出机器数所能表示的范围时,称为溢出。显然,两个异号数相加或两个同号数相减,其结果是不会溢出的。仅当两个同号数相加或者两个异号数相减时,才有可能发生溢出的现象,一旦溢出,运算结果就不正确了,因此必须将溢出的情况检查出来。 判别溢出的方法: 无符号数溢出判断─最高位是否产生进位或借位。 计算机设置进位标志位 Cy 判断无符号数溢出: 当数据加/减最高位产生进位/借位,Cy=1;否则,Cy=0。 补码溢出判断─符号位和最高数值位进位是否相同。 计算机设置溢出标志位 OV 判断补码溢出。 逻辑关系: OV=Cy6ÅCy7 当补码加/减产生溢出 OV=1,否则OV=0。
第1章 计算机基础知识 1.4.7其它编码 (1)西文字符编码:美国标准信息交换码ASCII码,用于计算机与计算机、计算机与外设之间传递信息。用一个字节表示一个字符,其中低7位为字符的编码值,最高位一般用作校验位。 说到这里,我们可以把计算机想象为一个加工处理数据的“工厂”,则数据运算部件就是数据加工车间,数据存储部件就是存放原材料、半成品和最终产品的库房,输入设备相当于运入原材料的运货卡车,输出设备相当于发出最终产品的运货卡车,控制部件则相当于承担领导指挥功能的厂长和各个职能办公室。在“领导”的正确指挥下,如果能够源源不断地取得原材料,工厂内又有存放的场所,车间能够对这些原材料进行指定的加工处理,加工后的产品可以畅通地运出去销售,则这个工厂(计算机)就纳入正常运行的轨道。
第1章 计算机基础知识 1.4.7其它编码 (2)汉字编码: GB2312-80国标码,用两个字节表示一个汉字的编码。 汉字的区号+A0H=汉字机内码的高字节 汉字的位号+A0H=汉字机内码的低字节 例如:‘啊’的区号为十进制的16区,位号为1。 相应的机内码为B0A1H (3)BCD码(Binary Coded Decimal)二进制代码表示的十进制数: 用4位二进制数表示一位十进制数。 8421 BCD码: 例:求十进制数876的BCD码 [876]BCD = 1000 0111 0110 876 = 36CH = 1101101100B BCD码运算: 十进制调整:计算机实际按二进制法则计算,加入十进制调整操作,可计算BCD码。 十进制调整方法:当计算结果有非BCD码或产生进位或借位,进行加6或减6调整。
第1章 计算机基础知识 例:计算BCD码 78+69=? 0111 1000 [78]BCD + 0110 1001 + [69]BCD + 0110 0110 +66H调整 1 0100 0111 带进位结果:147
第1章 练习题(2) 1、(作业)求下列数据的原码、反码和补码(用8位二进制代码表示): -127,-1,127,1,100 2、(作业)[X]补=80H,[X]真=?,[X]原=? [X]反=7FH,[X]真=?,[X]原=? [X]补=FFH,[X]真=?,[X]原=? [X]反=80H,[X]真=?,[X]原=? 3、下列数值或字符串表示成相应的ASCII码是多少? (1)换行 (2)字母‘A’ (3)空格 (4)‘9’ 4、(作业)求下列各机器数所表示数的范围: (1)8位二进制无符号整数; (2)用补码表示的8位二进制有符号整数; 5、有两个二进制数X=01101010,Y=10001100,试比较它们的大小。 (1)X和Y两个数均为无符号数; (2)X和Y两个数均为有符号的补码数。
第1章 练习题(2) 6、十进制负数-61的八位二进制原码是 ,八位二进制反码是 。 6、十进制负数-61的八位二进制原码是 ,八位二进制反码是 。 A)10101111 B)10111101 C)10101011 D)00110101 7、十进制正数38的八位二进制补码是 。 A)00011001 B)10100110 C)10011001 D)00100110 8、十进制负数-38的八位二进制补码是 。 A)01011011 B)10100110 C)10011001 D)00100110 9、有一个八位二进制数补码是11111101,其相应的十进制数是 。 A)-3 B)-2 C)509 D)253 10、十进制数-75用二进制数10110101表示,其表示方式是 。 A)原码 B)补码 C)反码 D)ASCII码