• 运算方法和运算部件


    一.高级语言和机器指令中的运算

    1.C程序中涉及的运算

    涉及的运算有按位运算逻辑运算移位运算位扩展和位截断运算

    • 移位运算
      负数反码,移位后符号位不变,左移时,最高位丢失0,则结果出错;右移时,最低位丢失0,影响精度。
      负数补码,移位后符号位不变,左移时,最高位丢失0,则结果出错;右移时,最低位丢失1,影响精度。
    • 位扩展
      进行位扩展时,扩展后的数值应保持不变。
      扩展方式有:0扩展和符号扩展。0扩展用于无符号数,只要在短的无符号数前面添加足够的0即可。符号扩展用于补码表示的带符号整数,通过在短的带符号整数前添加足够多的符号位来扩展。

    2.MIPS指令中涉及的运算

    MIPS指令系统涉及的运算有按位逻辑运算、逻辑移位、算术移位、带符号整数的加减乘除、无符号整数加减乘除、带符号整数的符号扩展、无符号数的0扩展
    、单精度浮点数加减乘除、双精度浮点数加减乘除等。

    2.基本运算部件

    1,串行进位加法器

    • 串行进方式:n位加法器,X与Y逐位相加,位间进位串行传送。
    • 只有一个全加器,数据逐位串行送入加法器中进行运算。进位触发器用来寄存进位信号,以便参与下一次运算。
    • 行进位加法器速度慢的主要原因是进位按串行方式传递,高位进位依赖低位进位。
      2,并行进位加法器
      用n位全加器实现两个n位操作数各位同时相加,这种加法器称为并行加法器。并行加法器中全加器的个数与操作数的位数相同。并行加法器中全加器的位数与操作数的位数相同,可同时对操作数的各位相加。计算机内部大多采用两级或多级先行进位加法器
      3,带标志加法器

    3.定点数运算

    1,补码加减法

    • 运算表达式
    • 判断是否溢出
      2,原码加减运算
      比较两个操作数的符号,对加法实行“同号求和,异号求差”,对减法实行“异号求和,同号求差求和时,数值位相加,若最高位产生进位则结果溢出求差时,被加数数值位加上加数数值位的补码
      3,移码加减运算
      移码的和、差等于和、差的补码。
      4,原码乘法运算
      原码一位乘法
      (1)确定乘积的符号位。由两个乘数的符号异或得到。
      (2)计算乘积的数值位,乘积的数值部分分为两个乘数的数值部分之积。
      原码二位乘法
      原码两位乘是用两位来决定新的部分积的形成,形成4种状态
  • 相关阅读:
    request的getServletPath(),getContextPath(),getRequestURI(),getRealPath("/")区别
    Google Guava
    Mybatis分页插件-PageHelper
    Mybatis通用Mapper
    IntelliJ Idea 常用快捷键
    @JProfiler
    sparkStreaming消费kafka-0.8方式:direct方式(存储offset到zookeeper)
    kafka其中一台节点坏掉的迁移或者数据迁移
    sparkStreaming序列化问题
    【CSS】最全的CSS浏览器兼容问题
  • 原文地址:https://www.cnblogs.com/wenwener/p/13762469.html
Copyright © 2020-2023  润新知