zoukankan      html  css  js  c++  java
  • 预习第三章

    高级语言和机器指令运算

    C中涉及的基本运算类型:算术运算,按位运算,逻辑运算,移位运算,位扩展和位截断运算。
    1.按位运算:符号|表示按位or运算;符号&表示按位and运算;符号~表示按位not运算;符号^表示按位xor运算.
    2.逻辑运算:符号||表示按位or运算;符号&&表示按位and运算;符号!表示按位not运算。
    3.移位运算:移位操作有逻辑移位和算术移位。逻辑移位不考虑符号位,总是把高(低)位移出,低(高)位补0.对于无符号整数的逻辑左移,如果最高位移出的是1,则发生溢出。对于带符号整数使用补码 算术移位方式。左移时,高位移出,低位补0,若左移前后符号位不同则发生溢出;右移时,低位移出,高位补符号。
    4.位扩展和位截断运算:短数向长数转换时需要进行位扩展运算,扩展后的数值应该保持不变。扩展方式:0扩展和符号扩展。0扩展用于无符号数,只要在短的无符号数前添加足够的0即可;符号扩展用于补码表示的带符号整数,通过在短的带符号整数前添加足够多的符号位来扩展。
    -MIPS指令系统涉及的运算有按位逻辑运算,逻辑移位,算术移位,有无符号整数的加减乘除带符号整数的符号扩展,无符号数的0扩展,单双精度浮点数的加减乘除等。

    基本运算部件

    串行进位加法器

    串行进位方式:对于图3.4所示的n位加法器,X与Y逐位相加,位间进位串行传送。
    行波进位加法器:串行进位加法器中的最低位C0,它把进位逐步从低位扩展到最高位。
    加法运算时间随两个加数位数n的增加而增加。当n较大时,串行进位的加法器将显著变慢。
    并行进位加法器


    带标志加法器

    要能够进行无符号整数的加减运算和带符号整数的加减运算,还需要在无符号数加法器的基础上增加相应的逻辑门电路,使加法器不仅能计算和差还能生成相应的标志性息。
    算术逻辑部件

    定点数运算

    补码的加减运算

    加法:[X]补+[Y]补=[X+Y]补(mod 2^n)
    减法:[X]补+[-Y]补=[X-Y]补=[X+(-Y)]补(mod 2^n)
    符号相异的数相加、符号相同的数相减,不可能发生溢出。
    符号相同的数相加、符号相异的数相减,可能发生溢出。
    判断是否发生溢出:
    1.符号位判断:两正数相加得到负数,或两负数相加得到正数时发生溢出。
    2.进位位相异或:次高位进位和最高位进位进行异或,结果为1,则表示溢出。
    3.扩充运算位数:将运算数的符号位设置为00(正数)或11(负数),如果结果的符号位不是00或11,而是01或10则可判断发生溢出。

    原码的加减运算

    比较两个操作数的符号,对加法实行“同号求和,异号求差”,对减法实行“异号求和,同号求差”。
    求和时,数值位相加,若最高位产生进位则结果溢出,和的符号位取被加数(被减数)的符号。
    求差时,被加数(被减数)数值位加上加数(被减数)数值位的补码。

    移码的加减运算

    移码的和、差等于和、差的补码。

    原码的乘法运算

    原码一位乘法
    确定乘积的符号位,由两个乘数的符号异或得到。
    计算乘积的数值位,乘积的数值部分为两个乘数的数值部分之积。
    原码二位乘法
    对乘数的每两位取值情况进行判断,使每步求出对应于该两位的部分积,则可将乘法速度提高一倍。

  • 相关阅读:
    2. Add Two Numbers
    8. String to Integer (atoi)
    18. 4Sum
    15. 3Sum
    1. Two Sum
    227. Basic Calculator
    7. Reverse Integer
    PostMessage和SendMessage的区别
    Date Time Picker控件
    git 设置和取消代理
  • 原文地址:https://www.cnblogs.com/Wangziweia/p/13778957.html
Copyright © 2011-2022 走看看