一. 移位运算

1.移位运算时为了乘除法做准备
2.移位的机器用语:移位移动的是数,小数点不动
3.移位的规则
(1)逻辑移位:无符号数
逻辑左移和逻辑右移,移出的空位都用0来补
(2)算术移位:有符号数
定点运算学习笔记
难点:负数移位后补码:
1.首先清楚补码的定义:负数的补码等于它的原码自低位到高位遇到的第一个”1”的位置为a, a的右边的0保持不变,a的左边数值位全部取反,符号不变
2.根据定义解决负数移位后补码添加代码
(1)如果左移,那么原码最低位添加0,补码跟原码保持一致,也应该添加0
(2)如果右移,那么原码最高位添加0,补码跟原码保持一致,添加0的取反

二. 加法运算

1.加法运算时补码的运算
定点运算学习笔记
整数的模为2n+1(n为总的位数=数值位+符号位)
小数的模为2m (m为符号位数)

2.练习
定点运算学习笔记

三. 减法运算

1.减法运算方式
定点运算学习笔记
整数的模为2n+1(n为总的位数=数值位+符号位)
小数的模为2m(m为符号位数)
2.练习
定点运算学习笔记

四. 加减法溢出

1.小数补码溢出
定点运算学习笔记


小数的补码范围为-1~+(1-2-n)
x+y>1,超出补码表示的范围,算出来的结果是错误的


2.整数补码溢出
定点运算学习笔记


整数的补码范围为 -2n ~ +(2n-1) n为数值位
A-B=138<-128,超出补码表示的范围,算出来的结果是错误的


五. 溢出判断

1. 溢出:运算的结果超出机器数(补码)的表示范围
(1) 两个异号数相加或者两个同号数相减,不会发生溢出
(2) 两个同号数相加或者两个异号数相减,有可能发生溢出
2. 一位符号位判断溢出:参加操作的两个数(减法时即为被减数和”求补”以后的减数)符号位相同,运算后的结果的符号与原操作数的符号不同,即为溢出
定点运算学习笔记
定点运算学习笔记

3. 双符号位
定点运算学习笔记

六. 乘法运算过程

  1. 分析笔算乘法与计算机处理乘法
    定点运算学习笔记
  2. 笔算乘法的改进(改进成计算机可以运算的方式)
    (1)运算中的展示
    定点运算学习笔记
    (2)乘法运算过程(寄存器中存储的数据)
    运算过程中,乘法运算的结果逐渐占领乘数部分寄存器
    定点运算学习笔记
  3. 原码一位乘法(一次只乘一位)
    练习:(-14/16) * (-13/16)
    定点运算学习笔记
  4. 补码校正法
    (1)补码一位乘法运算的规则
    定点运算学习笔记
    (2)被乘数符号任意,乘数符号为正

推理:
1 当被乘数为正,x和y的补码跟原码一样,跟原码一位乘一样([X][Y]=[XY]


2 当被乘数为负
定点运算学习笔记
结论:当乘数符号为正,[X]补*[Y] 补=[X*Y]补,和原码相乘一样,但是加法和移位按照补码的规则来运算


(3) 被乘数符号任意,乘数符号为负


推理:
定点运算学习笔记


结论:当乘数符号为负,乘数[y]补,去掉符号位,操作同(乘数符号为正),最后结果加[-X]补,校正


(4)练习 -0.10110.1101
定点运算学习笔记
(5)练习 0.1101
(-0.1011)
定点运算学习笔记
5. 补码比较法

七. 除法运算过程

相关文章: