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


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

    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:浮点数除法


     

  • 相关阅读:
    706. Design HashMap 实现哈希表
    5. Longest Palindromic Substring 返回最长的回文子串
    8. String to Integer (atoi) 字符串转成整数
    22. Generate Parentheses产生所有匹配括号的方案
    245. Shortest Word Distance III 单词可以重复的最短单词距离
    java之spring之初始spring
    java之hibernate之hibernate缓存
    java之hibernate之hibernate查询
    java之hibernate之加载策略和抓取策略
    java之hibernate之 cascade和inverse
  • 原文地址:https://www.cnblogs.com/ggotransfromation/p/11610457.html
Copyright © 2020-2023  润新知