运算方法

本文介绍定点运算和浮点运算。定点运算中包括定点加法、减法;定点乘法;定点除法。浮点运算中包括浮点加法、减法;浮点乘法;浮点除法。

定点运算

  • 计算机中的数制
    • 二进制(0,1),数据后缀是B
    • 八进制(0~7),数据后缀是Q
    • 十进制(0~9),数据后缀是D,一般省略
    • 十六进制(0~9,A~F),数据后缀是H,如果数据的是以A~F开始,前面必须加0
  • 数制之间的转换
    • 其它进制转十进制:按权展开
    • 十进制转二进制: 整数”除2取余”,小数”乘2取整”
    • 二进制转十六进制:4位二进制数转1位16进制数
    • 二进制转八进制:3位进制数转1位8进制数
  • 二进制
    • 无符号数
      • 定义:整个机器字长的全部二进制位均表示数值位,相当于数的绝对值。
      • 常见: 8位范围:0~255;16位范围:0~65535。
    • 有符号数
      • 定义:带有数码化的正负号的数称为有符号数或机器数,习惯上约定机器数的最高位为其符号位,0表示正数,1表示负数。
  • 定点表示
    • 定义:约定机器中所有数据的小数点位置是固定的,由数符和尾数构成。

    • 定点纯小数
      1. 定义:假想的小数点在数符后面。
      2. 范围:0<= x <=1-2^(-n)
    • 定点纯整数
      1. 定义:假想的小数点在最后一位后面
      2. 范围:0<= x <=2^n-1
  • 定点表示—机器码(有符号数)
    • 机器码:在计算机中通常把符号位和数字位一起编写相应的数。常用的机器码有原码、反码、补码和移码。

    • 真值:一般书写表示的数据(常见的十进制数)。
    • 移码
      • 定义:
      • 移码规则:真值x加上2^(n-1),然后把计算的结果转化位二进制数。(n表示多少位的顶点表示)
      • 特点:
        • 1表示正数,0表示负数。
    • 原码
      • 定义:
      • 原码规则:真值的绝对值转化为二进制,倘若真值是正数,符号位为0;若是负数,符号位为1。0有两种表示方法。
      • 特点
        • 原码的数值部分是该数的绝对值,最高位表示符号位,最高位为0是正数,最高位为1是负数。
        • 0有两种表示法:[+0]原=0000 0000;[-0]原=1000 0000
        • 采用原码表示法简单易懂,但是运算复杂。
    • 反码
      • 定义:
      • 反码规则:正数的反码等于原码,负数的反码等于除了符号位外其余二进制数码0变成1,1变成0。
    • 补码
      • 定义:
      • 补码规则:正数的补码等于原码,负数的补码等于反码加1。
      • 优点
        • 补码表示的负数范围可以到2^n,常见的8位补码表示范围是:-128~127
        • 补码表示的数据没有符号位。
        • 补码中0值唯一。
  • 十进制数串的表示方法
    • BCD码形式:一个字节存放一个十进制的数位或符号位。
    • 压缩BCD码形式:一个字节存放两个十进制的数位。
      • 符号位:C 1100表示正
      • 符号位:D 1101表示负
      • 符号位放在末尾
  • 定点加、减法运算
    • 补码
      • 加法:[x]补 + [y]补=[x+y]补

      • 减法: [x]补- [y]补=[x]补 + [-y]补
      • 其它公式:
        • -[y]补 = [-y]补
        • [y]补 取反 + 1 = [-y]补
      • 溢出
        • 定义:在定点数机器中,数的大小超出了定点数能表示的范围。

        • 溢出判断

          • 进位判别法:判断数据最高位的进位与符号位进位是否相同,相同不溢出,不同则溢出。
          • 双符号位法:将符号位扩展为2位,具体说就是对于正数两个符号位是”00”,对于负数两个符号位是”11”,两个符号位都看作数码一样参加运算。两个数相加后,看符号位。

            符号位 是否溢出
            01 上溢出
            10 下溢出
            00或11 未溢出
    • 十进制数串
  • 定点乘法

    • 原码并行乘法
      • 运算规则:乘积的符号位由两数的符号位按异或运算得到,而乘积的数值部分则是两个正数相乘之积。
    • 直接补码并行乘法
  • 定点除法运算

    • 原码除法原理:在顶点计算机中,两个原码表示的数相除的符号位由两数的符号位按异或运算的到,而商的数值部分则是两个正数相除之商。
    • 恢复余数法
    • 加减交替法

浮点运算

  • 浮点表示
    • 定义:对于任何一个二进制数用科学计数法表示数据的方式。
    • 格式:

    |M*2^e| |-| M:尾数,是一个顶点纯小数,决定数据的表示精度 e:指数,是一个顶点纯整数,决定数据的表示范围

    • 特点
      • 同一个浮点数的表示方法不是唯一的。
  • IEEE754标准
    • 32浮点数的标准格式:

      |S|E|M| |-|-|-|

    • 解释
      • S位(1bit):是浮点数的符号位,0表示正数,1表示负数。
      • E位(8bit):阶码,阶码是比实际数据的指数真值多127,如果浮点数的指数真值是e,则阶码E=e+127。
      • M位(23bit):尾数,小数点在尾数域的最前面,为了尾数的表示精度提高一位,IEEE规格化浮点数规定小数点左边一位必须是1,即1.M,该位经常不予存储,所以M位存储的是有效数据的小数部分。
    • 真值与浮点数的关系:x=(-1)^s*M*2^e=(-1)^s*(1.M)*2^(E-127)
    • 注意
      • 当阶码E为0且尾数M也全为0时,表示的真值为0,结合符号为S为0或1,有正零和负零之分。
      • 当阶码为全1且尾数M为全0时,表示的真值X为无穷大,结合符号位S为0或1,就有正无穷大和负无穷大。
  • 加减法运算

  • 乘除法运算

其它数据的表示方法

  1. 字符表示方法

    • 字符的表示:ASCII码:一个字节表示1个字符。
  2. 字符串的表示方法
    • 指连续一串字符,它们在主存中占用连续多个字节,每个字节存一个字符的ACSII码。
  3. 汉字的表示方法
    • 汉字的输入编码: 拼音码,字型码
    • 汉字的存储编码:用两个字节表示一个汉字。
    • 汉字的输出编码:点阵表示的字模码。