1 / 24

Arithmetic for Computers — 计算机中的算法

Arithmetic for Computers — 计算机中的算法. 目录. 基本运算 —— 符号数 —— 加、减、乘、除 浮点数运算 —— 浮点数表示 —— 加、减、乘、除. 基本运算 — 有符号数. 有符号数最高位表示符号位, 1 表示负数, 0 表示正数。 有符号数在计算机中用二进制的补码表示 正数的补码是其本身 原码: 01111111111111111111111111111111 补码: 01111111111111111111111111111111 数值大小: 负数的补码为除符号位外所有的位取反,然后加 1 :

toshi
Download Presentation

Arithmetic for Computers — 计算机中的算法

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Arithmetic for Computers—计算机中的算法

  2. 目录 • 基本运算 • ——符号数 • ——加、减、乘、除 • 浮点数运算 • ——浮点数表示 • ——加、减、乘、除

  3. 基本运算 —有符号数 有符号数最高位表示符号位,1表示负数,0表示正数。 有符号数在计算机中用二进制的补码表示 正数的补码是其本身 原码:01111111111111111111111111111111 补码:01111111111111111111111111111111 数值大小: 负数的补码为除符号位外所有的位取反,然后加1: 原码:10000000000000000000000000000010 补码: 11111111111111111111111111111110 数值大小:

  4. 基本运算 —加法、减法 减法可以通过加上减数的补码来表示: 例如7-6可表示为 溢出(overflow): MIPS通过异常(exception),也叫做中断(interrupt)方式来检测溢出。

  5. 基本运算-乘法 下式为只有1,0的十进制乘法运算 二进制运算与其类似:

  6. 基本运算 -乘法 乘法运算包含:一个32位乘数寄存器,一个64位被乘数寄存器,一个64位积(product)寄存器(初始值为0)。运算流程图如右图

  7. 基本运算 -乘法 改进的乘法运算电路结构: 初始时,乘数放在product寄存器低32位,高32位为0。在计算中右移product寄存器即可。

  8. 基本运算 -乘法 快速乘法运算电路:这种结构每一位乘法运算不是必须要一个周期,还有利于用流水线的方式同时进行多个乘法的运算。

  9. 基本运算——除法 下式为只有1,0的十进制乘法运算 被除数(dividend)、除数(divisor)、商(quotient)、余数(remainder)之间的关系:

  10. 基本运算——除法 除法运算电路中包括:一个32位quotient寄存器,一个64位divisor寄存器和一个64位remainder寄存器。 初始状态:除数放在divisor寄存器的高32位,低32位为0;remainder寄存器存放被除数;quotient寄存器初始化为0。 右图为除法运算流程图

  11. 基本运算——除法 举例: 7除以2(十进制),假设运算为4位数,即0000 0111除以0010,运算过程如下:

  12. 基本运算——除法 改进的除法电路 初始状态,remainder寄存器高32位存放被除数,低32位为0。首先右移remainder寄存器,使被除数与除数最高位对齐。运算时, remainder左移,相当于被除数向左移位,商放在低32位。

  13. 基本运算——除法 带符号除法运算: 余数的符号必须与被除数相同。例如

  14. 基本运算——除法 乘法、除法相关MIPS指令 Hi,Lo为两个专用寄存器

  15. 目录 • 基本运算 • ——符号数 • ——加、减、乘、除 • 浮点数运算 • ——浮点数表示 • ——加、减、乘、除

  16. 浮点数运算 浮点数表示方法: 1.xxxxxxx=2yyyy 单精度(single precision): 双精度(double precision): 溢出(overflow):指数太大 下溢出(underflow):指数为负数,且太小。

  17. 浮点数运算 IEEE 754浮点数标准: bias:单精度为127,双精度为1023

  18. 浮点数运算 举例: -0.75用单精度表示

  19. 浮点数运算 举例: -0.75用双精度表示

  20. 浮点数运算 —浮点数加法 举例:计算0.5加-0.4375(保持4位精度) 0.5=1.000*2-1,-0.4375=-1.110*2-2 Step1. Step2. Step3. Step4. round the sum

  21. 浮点数运算 —浮点数乘法 举例:计算0.5乘以-0.4375(保持4位精度) 0.5=1.000*2-1,-0.4375=-1.110*2-2 Step1. Step2. Step3. 检查结果是否规范化,是否溢出 Step4. round the product Step5. 设置符号

  22. 浮点数运算——近似计算 近似计算: IEEE754 标准要求采用额外2比特数据用于近似计算,分别称为guard,round。 四种近似方法:round up(toward +∞),round down(toward -∞),truncateand round to nearest even.

  23. 浮点数运算——MIPS指令 浮点数加法: 单精度 add.s 双精度 add.d 浮点数减法:单精度 sub.s 双精度 sub.d 浮点数乘法:单精度 mul.s 双精度 mul.d 浮点数除法:单精度 div.s 双精度 div.d 浮点数比较:单精度c.x.s 双精度c.x.d (x可以是eq, neq, lt, le, gt, ge) 浮点数跳转:branch, true (bclt) branch, false (bclf)

  24. 浮点数运算—— IA-32 IA-32(Intel Architecture)是Intel的一种处理器架构。它与MIPS不同的是它没有Hi,Lo两个寄存器,而是一个64位的寄存器。同时他扩展了60种浮点数操作指令。 IA-32浮点操作指令可分为4大类:

More Related