第3章计算机的算术运算 本章主要讨论: 3.1算术运算基础 32加减运算 3.3算术逻辑运算部件 34乘法运算 35除法运算 36浮点运算
第3章 计算机的算术运算 本章主要讨论: 3.1 算术运算基础 3.2 加减运算 3.3 算术逻辑运算部件 3.4 乘法运算 3.5 除法运算 3.6 浮点运算
3,1算术运算基础 数的类型: 无符号整数 如:内存地址计算 有符号数 正数 n负数 浮点数
3.1 算术运算基础 一. 数的类型: ◼ 无符号整数 如:内存地址计算 ◼ 有符号数 ◼ 正数 ◼ 负数 ◼ 浮点数
3,1算术运算基础 计算机进行运算的特点: (1)所有数据都是用二进制数位形式来表示的。 (2)在机器内部,数是以编码形式即机器数来表示 的。 (3)机器运算规模有限,因而机器运算就要解决运 算方法、数据表示格式及数据长度的选取、规定 等问题。 4)用计算机进行运算时,都要把复杂的运算,简 化为一系列的、最基本的运算才能实现。计算机 可以实现的基本运算有算术运算(加、减、乘、除 等)和逻辑运算〔与、或、异或等)
3.1 算术运算基础 二. 计算机进行运算的特点: (1)所有数据都是用二进制数位形式来表示的。 (2)在机器内部,数是以编码形式即机器数来表示 的。 (3)机器运算规模有限,因而机器运算就要解决运 算方法、数据表示格式及数据长度的选取、规定 等问题。 (4)用计算机进行运算时,都要把复杂的运算,简 化为一系列的、最基本的运算才能实现。计算机 可以实现的基本运算有算术运算(加、减、乘、除 等)和逻辑运算(与、或、异或等)
32定点加减运算 补码加减法 补码的一个重要特点是它可以直接进行加 减法运算,并计算简革,因此计算机中 塞本采用补码加减法。 ■运算规则: (1)参与运算的操作数用补码表示,符号位作为数 的一部分直接参与运算,所得即为补码表示的运 算结果。 (2)若操作码为加,则两数直接相加; (3)若操作码为减,则将减数变反后再与被减数相 加
3.2 定点加减运算 一 . 补码加减法: ◼ 补码的一个重要特点是它可以直接进行加 减法运算,并且计算简单,因此计算机中 基本采用补码加减法。 ◼ 运算规则: (1)参与运算的操作数用补码表示,符号位作为数 的一部分直接参与运算,所得即为补码表示的运 算结果。 (2)若操作码为加,则两数直接相加; (3)若操作码为减,则将减数变反后再与被减数相 加
32定点加减运算 计算公式 X+Y补=[Ⅺ]补+[Y补 [XY补=D灯补+[Y补 例1 已知X=9,Y=3,求[X+Y补,[X们补,[Y灯]补 解:[X+Y]=[X]补+[Y =01001+00011=01100 XY]补=[X补十[ =01001+11101=100110 YX补=[Y补+[1 =00011+10111=11010
3.2 定点加减运算 ◼ 计算公式 [X+Y]补=[X]补+[Y]补 [X-Y]补=[X]补+[-Y]补 ◼ 例1 已知X=9,Y=3,求[X+Y]补, [X-Y]补, [Y-X]补。 解: [X+Y]补= [X]补+[Y]补 =01001+00011=01100 [X-Y]补=[X]补+[-Y]补 =01001+11101=100110 [Y-X]补=[Y]补+[-X]补 =00011+10111=11010
32定点加减运算 ■例2 X=0.001010Y=0100011求[XY1补 解[灯]补=0.001010[Y补=0100011 则[XY补=[补+[Y补 =0.001010+0100011 =0.101101
3.2 定点加减运算 ◼ 例2 X=0.001010 Y=-0.100011 求[X-Y]补 解 [X]补=0.001010 [-Y]补=0.100011 则 [X-Y]补 = [X]补+[-Y]补 = 0.001010 + 0.100011 = 0.101101
32定点加减运算 二.溢出 机器数字长5位,其中含1位数符,补码 运算,问:定点整数表示范围? 16~+15(10000~01111) 所谓溢出就是指运算结果大于机器所能 表示的最大正数或小于机器所能表示的 最小负数
3.2 定点加减运算 二. 溢出 机器数字长5位,其中含1位数符,补码 运算,问:定点整数表示范围? -16 ~ +15 (10000 ~ 01111) 所谓溢出就是指运算结果大于机器所能 表示的最大正数或小于机器所能表示的 最小负数
32定点加减运算 ■正溢:两个正数相加后结果超出允许的表示 范围。 n负溢:两个负数相加后结果超出允许的表示 范围。 Operation Operand A operand B Result overflow A+B ≥0 ≥0 0(01) A+B A-B ≤ 000 <0 ≥0(10) <0 0(01 A-B ≥0 ≥0(10)
3.2 定点加减运算 ◼ 正溢:两个正数相加后结果超出允许的表示 范围。 ◼ 负溢:两个负数相加后结果超出允许的表示 范围。 Operation Operand A Operand B Result overflow A+B ≧0 ≧0 <0 (01) A+B <0 <0 ≧0 (10) A-B ≧0 <0 <0 (01) A-B <0 ≧0 ≧0 (10)