计算机组成原理和结构图式(第二章)

计算机组成原理和结构图式(第二章)

1、数值型数据表示


 

1)进位计数制

(1)十进制—>二

  • 整数部:除基取余
  • 小数部:乘积取整

(2)二进制—>按权相加

2)数符表示:无符号数、有符号数(真值、机器数)

3)定点表示法:小数点位置固定不变,本身不占存储位

(1)整数:精度为固定的1

  • 无符号
  • 有符号:原码、补码

(2)小数:精度为固定的2^-7—x.xxxxxx

  • 原码
  • 补码

4)浮点表示法 阶码(首位阶符Ef)|尾数(首位数符Mf)

  • 真值N=±R^E×M
  • 阶码E,定点整数,补码/移码表示,代表数的范围
  • 尾数M,定点小数,原码/补码表示,代表数的精度
    • Mf整数位即符号位  
    • 尾数规格化  
      • 原码:1/2≤|M|<1    
      • 补码:1/2≤M<1,-1≤M≤-1/2    
      • 负数补码表示仅有1.1000……或1.0xxx……    
  • 精度和范围
  • 移码(增码):|x|移=2^n+x(n是整数位数,x是真值)
    • 意义:将真值x在数周正向平移2^n  
    • 移码大于0  
    • 移码和补码比较:最高位(符号位)相反  
  • IEEE754标准浮点格式
    • 1)偏置值定义不同,减去1  
    • 2)数值第一位有效值不保存,eg:0.1011->1.011->.011  
    • eg:1010010.01->(1).01001001×2^6  
    • 符号位(一位)+阶码移码(因是移码无正负)+尾数原码(符号位已前移)  
    • 短实数:移码偏置值2^7-1=127,1+8+23=32

2、字符型数据表示:ASCⅡ码是16进制


 

128中常用字符,7位

空格-32,0-48,A-65,a-97

3、运算方法1:定点加减法


 

PS:机器码运算:符号位参与运算,补码舍进位,反码加进位

1)补码:

  • (X+Y)补=X补+Y补,(X-Y)补=X补(-Y)补
  • Y补->(-Y)补:包括符号位变反加一

2)溢出判断-逻辑,SA,SB表示数符、Cf表示符号位产生进位,C表示最高有效数值位产生进位

(1)SA,SB,Sf

溢出=SA SB Sf+SA SB Sf

(2)Cf,C

正溢:Cf=0,C=1

负溢:Cf=1,C=0

不溢:Cf=C

(3)双符号位:扩展为双符号位,1->11,0->00

正溢:01

负溢:10

不溢:00/11

(3)移位(移除后)对尾数以为(原码/补码)

正数补码:数符不变,空位补0

负数补码:数符不变,左移空位补0,右移空位补1

双符号位中第一位符号位不变,第二符号位与数符看成一个整体

(4)舍入方法

0舍1入

末位恒置1

4、运算方法2:定点乘法:将乘法转换为加法——部分积累加、移位


 

移位

  • 逻辑左移=算数左移=×2(含进位位)
  • 逻辑右移≠算数右移(最高位复制补位)=÷2

原码一位乘法

  • 分步乘法:每次讲一位乘数所对应的部分积与原部分积的累加的和相加,并右移(算数右移)
  • 符号位单独参加运算,数据位取绝对值参加运算
  • 例一:已知X=0.110,Y=-0.101
    • [X]原=0.110,[Y]原=1.101  
    • 部分积 【乘数】/判断位  
    • 00.000 Y0.101  
    • + 00.110  
    • = 00.110  
    • ->00.011 0Y0.10  
    • + 00.000  
    • = 00.011  
    • ->00.001 10Y0.1  
    • + 00.110  
    • ->00.011 110Y0  
    • X×Y=(0异或1).011110=1.011110  

补码一位乘法

  • [X]补=X0X1……Xn,[Y]补=Y0Y1……Yn
  • [X · Y]补=[X]补×Σ(Yi+1 - Yi)2^(-i)
  • 运算规则:
    • (1)若Yn+1=Yn,部分积+0,部分积算术右移一位  
    • (2)若YnYn+1=01,部分积+[X]补,部分积算术右移一位  
    • (3)若YnYn+1=10,部分积+[-X]补,部分积算术右移一位  
    • 重复进行n+1步,但最后一步不移位  
    • 包括一位符号位,所得乘积2n+1位,n为数据位位数  
  • 特殊问题处理
    • (1)i=n时,Yn+1=0  
    • (2)Yn+1寄存器位于乘数寄存器Y后增加一位  
    • (3)算数右移的对象:部分积和乘数寄存器均右移  
  • 例一 :已知X=+1101,Y=+1011
    • [X]补=01101,[Y]补=01011,[-X]补=10011  
    • (双符号位)部分积 乘数  
    • 000000 [010110](Yn和Yn+1)  
    • + 110011  
    • = 110011    
    • ->111001 1[01011]  
    • + 000000  
    • = 111001 11[0101]  
    • + 001101  
    • = 001001  
    • ->000100 111[010]  
    • + 110011  
    • = 110111  
    • ->111011 1111[01]  
    • + 001101  
    • = 001000  
    • [X-Y]补=010001111  

5、运算方法3:定点除法

手工乘除法和计算机乘除法移位的对象和方向不同

原码乘除法,尾数取绝对值,符号位单独运算

1.原码恢复余数除法

  • 1)判断是否够减(试商)
    • 用减后余数的符号怕断  
  • 2)余数为正数时,够减,商上1,余数左移一位
  • 3)余数为负数时,不够减,商上0
    • 加除数恢复成原来的值,将余数左移一位  
  • 运算得到的一位商先放于商左侧的一位上商位,然后随尾数左移
  • 不足:步数不确定

2.原码加/减交替出发运算方法(不恢复余数法)

  • 3)余数为负数时,不够减,商上0      
    • 将余数左移一位,加除数(此时已完成试商)  

6、运算方法4:浮点数加减法

(1)检测能否简化操作

(2)对阶(将大阶码提出)小阶向大阶对齐

(3)尾数加减

(4)结果规格化

  • 唯二规格化形式:00.1……或11.0……
  • 规格化00.0……或11.1……:尾数左移,阶码减一,直到达到要求
  • 规格化0.1……或1.0……:一次右移,阶码加一

7、运算方法5:浮点数乘法

8、运算方法6:浮点数除法

猜你喜欢

转载自www.cnblogs.com/ggotransfromation/p/11610457.html