第二讲 计算机中数的表示及运算(序)
教学方法: 讲授法
授课时数: 2学时
教学目的:
1、理解原码、反码、补码的概念
2、掌握真值、原码、反码及补码间的换算
3、熟悉BCD码和ASCII码
教学重点:
补码的概念及运算
BCD码及ASCII码
教学难点:
补码的运算
教学环节:
组织教学:(3分钟)检查学生人数
复习提问:(2分钟)
原码、反码、补码三者之间有何关系?
讲授新课:(70分钟)
4)补码的运算
当X≥0时,[X]补= [X]反=[X]原
[ [X]补]补 = [X]原
[X]补+ [Y]补 = [ X+Y ]补
[ X-Y ]补= [ X+(-Y)]补
例:已知 X=52 Y=38 求X-Y
方法1: 减法: 方法2: 加法
X-Y = 52-38 =14 X-Y = [ [ X-Y]补]补 = [ [X]补+[-Y]补]补
0 0 1 1 0 1 0 0 =[ [52]补+[ -38]补]补
-) 0 0 1 0 0 1 1 0 =[ 14 ]补 =14
0 0 0 0 1 1 1 0
[52]补: 0 0 1 1 0 1 0 0
[-38]补:+) 1 1 0 1 1 0 1 0
1 0 0 0 0 1 1 1 0
自然丢失
计算机在做算术运算时,必需检查溢出,以防止发生错误
5)运算的溢出问题
资料字长(位数)有一定限制,所以资料的表示应有一个范围。
如字长8位时; 补码范围-128~+127
若运算结果超出这个范围,便溢出。
例:
[98]补: 0 1 1 0 0 0 1 0 [85]补: 0 1 0 1 0 1 0 1
[25]补:+)0 0 0 1 1 0 0 1 [47]补:+)0 0 1 0 1 1 1 1
[123]补: 0 1 1 1 1 0 1 1 [132]补: 1 0 0 0 0 1 0 0
未溢出 0 0 溢出 0 1
Cs+1 Cs(未溢出) Cs+1 Cs (溢出)
错:两个正数相加和为负数。
[- 85]补: 1 0 1 0 1 0 1 1 [- 19]补: 0 1 0 1 0 1 0 1
[- 47]补:+)1 1 0 1 0 0 0 1 [- 79]补:+)1 0 1 1 0 0 0 1
[- 132]补: 1 0 1 1 1 1 1 0 0 [- 98]补: 1 1 0 0 1 1 1 1 0
溢出 1 0 未溢出 1 1
Cs+1 Cs Cs+1 Cs
错:两个负数相加和为正数。
可见:结果正确(无溢出)时,Cs+1 = Cs
结果错误(溢出)时,Cs+1 ≠ Cs
溢出判断:溢出 = Cs+1Cs(即结果是0为无溢出;1为有溢出)
十进制数的编码
对机器:二进制数方便,
对人 :二进制数不直观,习惯于十进制数。
在编程过程中,有时需要采用十进制运算,但机器不认识十进制数。
怎么办?
可以将十进制的字符用二进制数进行编码:
0000 9 1001
0001 1010
2 0010 1011
3 0011 1100 未用码
4 0100 1101
5 0101 1110
6 0110 1111
0111
8 1000
这叫做二进制数对十进制编码——BCD码。
上述每4位二进制数表示一个十进制字符,这4位中各位的权依次是:
8、4、2、1——8421 BCD码。
BCD码的运算:
例: 1 8 0 0 0 1 1 0 0 0
+) 3 BCD码相加 +) 0 0 0 0 0 0 1 1
2 1 0 0 0 1 1 0 1 1
B
非BCD码(错)怎么办?
需进行十进制调整:
0 0 0 1 1 0 0 0
+) 0 0 0 0 0 0 1 1
0 0 0 1 1 0 1 1 (个位大于9,应进1)
+) 0 1 1 0 (加6使进1)
0 0 1 0 0 0 0 1 (结果形如出21)
(1)BCD码加法规则
两个BCD数相加时,“某位”的和小于10则保持不变;
两个BCD数相加时,“某位”的和大于9,则和数应加6修正。
(2)BCD码减法规则
两个BCD数相减时,“某位”的差未发生借位,则差数保持不变;
两个BCD数相减时,“某位”发生了借位,其差应减6修正。
这里“某位”指BCD数中的“个位”、“十位”、“百位”、……
0 1 1 0 0 1 0 1 (65) 0 0 1 1 0 1 0 0 (34)
+) 1 0 0 1 0 1 1 1 (97) -) 0 0 0 1 0 1 0 1 (15)
1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1
+) 0 1 1 0 0 1 1 0 (加66调整)-) 0 1 1 0 (减6调整)
10 1 1 0 0 0 1 0 (162) 0 0 0 1 1 0 0 1 (29)
字符信息的表示
计算机能识别0、1、0、1、……;这些0、1、0、1、……有的代表
数值,有的仅代表要处理的信息(如字母、标点符号、数字符号等文字符号),所以,计算机不仅要认识各种数字,还要能识别各种文字符号。人们事先已对各种文字符号进行二进制数编码:
如,美国信息交换标准码——ASCII码,用一个字节表示一个字符。
低7位是字符的ASCII码值;最高位是通信时的校验位。
见 P328
巩固新课:(10分钟)
1、补码的作用?
2 为什么对BCD码要进行十进制调整?
布置作业:(5分钟) P 13 : 5 、 6
版书设计
一、补码的运算
1、…….
2、…….
二、运算溢出问题
1、…….
2、…….
十进制数的编码
1、…….
2、…….
字符信息的表示
1、…….
2、…….
小结:
1、…….
2、…….
3、…….
4、…….
作业: