第二讲 计算机中数的表示及运算(序) 教学方法: 讲授法 授课时数: 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、…….  作业: