计算机组成原理_定点数的运算

计算机组成原理总目录

定点数的运算

1. 移位运算

(1)算术移位:面向有符号数,移位过程中符号位不变
计算机组成原理_定点数的运算_第1张图片
(2)逻辑移位:无视符号位,左移右移均添0
计算机组成原理_定点数的运算_第2张图片
(3)循环移位:分为【不带进位标志CF的循环移位】和【带进位标志CF的循环移位】
计算机组成原理_定点数的运算_第3张图片
计算机组成原理_定点数的运算_第4张图片

2. 原码、补码加减法

(1)原码加法:逢二进一

  • 判断符号位,若相同,则绝对值相加后补上符号位;
  • 判断符号位,若不同,则绝对值大的减去绝对值小的,补上绝对值大的符号位

(2)原码减法:将减数的符号位取反后按原码的加法进行运算

(3)补码加法:

  • 参与运算的两个数均转换为补码相加,逢二进一
  • 符号位与数值位均参与加法运算,结果的符号位进位丢弃
  • 补码加法运算的结果为补码

(4)补码减法:将减数符号位取反,两数转为补码后进行补码的加法运算

3. 符号扩展与溢出

符号扩展:当一个8位二进制与16位二进制相加时,可能得到的结果超出8位二进制的最大值,故此时就需要对8位二进制进行符号扩展。

  • 正数符号扩展:附加位均添0
  • 负数符号扩展:
    (1)原码负数:符号位不变,附加位添0
    (2)补码负数:符号位不变,整数部分附加位添1,小数部分附加位添0
    (3)反码负数:符号位不变,附加位均添1

溢出:当【两个符号相同的数相加】或者【两个符号位不同的数相减】时可能会发生溢出
溢出判断:

  • 一位符号:通过一位符号进行判断
    (1)两个符号相同的数相加得到的一位符号位为相反的符号位,则可判断溢出;
    (2)两个符号不同的数相加得到的一位符号位为被减数相反的符号位,则可判断溢出;
  • 双符号位:通过两个符号位 S1S2来判断
    (1) S1S2 = 00,结果为正,无溢出
    (2) S1S2 = 01,正溢出
    (3) S1S2 = 10,负溢出
    (4) S1S2 = 11,结果为负,无溢出
  • 一位符号位的进位:通过【符号位的进位C1】和【最高数位的进位C2】判断
    (1)C1C2相同,无溢出
    (2)C1C2不同,有溢出

4. 原码、补码乘法

原码乘法:参考十进制乘法,绝对值相乘,符号位异或
计算机组成原理_定点数的运算_第5张图片
实际在计算机中二进制实际的乘法计算过程如下):
计算机组成原理_定点数的运算_第6张图片

补码乘法:符号位参与运算,Booth算法
计算机组成原理_定点数的运算_第7张图片

5. 原码、补码除法

原码除法:不恢复余数法,符号位单独计算

  • 若余数为负,则商0,因为余数为负,代表余数减多了一次,实际包括两步
    (1)通过+|y|恢复余数
    (2)商 0 移位
  • 余数为正,则商1,即余数减去除数:|x| - |y| = |x| +(-|y|) = |x| +([ - |y| ]
  • 若最后一步余数为负,不仅要商0, 还需要+|y|恢复余数
    计算机组成原理_定点数的运算_第8张图片

补码除法:加减交替法

  • 符号位参与运算
  • 判端被除数[ x ]与除数[ y ]是同号还是异号
    (1)同号:减去[ y ], 即+[ -y ]
    (2)异号:加上[ y ],即+[ y ]
  • 判断余数与除数[ y ]是同号还是异号(重复n次)
    (1)同号:商1,左移一位,减去[ y ], 即+[ -y ]
    (2)异号:商0,左移一位,加上[ y ],即+[ y ]
  • 末位恒置为1
    计算机组成原理_定点数的运算_第9张图片

6. 类型转换

(1)有符号数与无符号数的转化:判断最高位是否作为符号位
计算机组成原理_定点数的运算_第10张图片

(2)不同字长整数之间的转换

  • 高字长转低字长:直接截断高位
  • 低字长转高字长:高位扩展为原数字的符号位

计算机组成原理_定点数的运算_第11张图片

7. 数据的存储和排列

(1)数据的存储模式分为大端方式和小端方式

  • 大端方式:起始地址到结尾地址依次存放高位到低位数据

计算机组成原理_定点数的运算_第12张图片

  • 小端方式:起始地址到结尾地址依次存放低位到高位数据

计算机组成原理_定点数的运算_第13张图片

(2)数据的排列遵循 “边界对齐的”原则
假设计算机的机器字长为32位,即计算机每次读取数据的长度为32位,则有如下单位:
1字 = 32bit,半字 = 16bit(其中默认字节 = 8bit)

  • 边界对齐方式:不拆分任何单位的数据,不足32位的进行填充

计算机组成原理_定点数的运算_第14张图片

  • 边界不对齐方式:可拆分单位的数据来填满32位

计算机组成原理_定点数的运算_第15张图片
在边界对齐方式中,虽然填充的部分浪费了一些存储空间,但有利于计算机的取数速度
在边界不对齐方式中,如果数据不在32位字长内,则需要取下一个32位字长,即执行两次取数操作

你可能感兴趣的:(计算机组成原理,计算机组成原理,定点数的运算)