首页 > 编程知识 正文

计算机组成原理原码补码反码,补码的数学原理

时间:2023-05-06 09:40:09 阅读:144128 作者:1076

8.9移位运算8.9.1移位运算的分类

8.9.2算术移位移位:通过改变每个数字位和小数点的相对位置来改变每个数字位的位权。

8.9.3原码算术移位

原码 --符号位不变,数值移位

右移:高位替补0,低位放弃。 舍位不为0时,精度会丢失

左移:低位补位0,高位舍去。 舍位不为0的话,会产生很大的误差

8.9.4翻转的算术移位

正数反码与原始代码匹配

负数的反符号移位运算:

1. 右移:高位补1、低位放弃

2. 左移:低位补1、高位舍弃

8.9.5补数的算术移位

正补数与原始代码一致

负数补数:

1 .右移:高位补1、低位放弃

2. 左移:低位增补0,高位销毁

8.9.6算术班次总结

位数有限,不能准确表示乘除法

8.9.7算术移位的应用

类似X7的数可以分解为x(2^02^12^2)

8.9.8逻辑移位逻辑右移:高位补0,低位放弃

逻辑左移:低位增补0,高位销毁

视为无符号位算术移位

8.9.9逻辑移位的应用

8.9.10循环移位不带进位位:用拆下的位填补空缺

带进位位:移动的位放入进位位,原始进位位填补空缺

8.10加法和溢出判定8.10.1原码的加减运算

如果加法器直接将源代码相加,则可能会发生错误。

8.10.2补数的加减法

补数的加减运算最终成为加法器,通过加法器实现运算,编码位也参与运算

8.10.3溢出判定

你如何判断上溢和下溢?

硬件确定溢出的第一种方法:

确定硬件溢出的第二种方法

第三种方法:采用2符号位

8.10.4符号扩展

定点整数:

1 .正数0

2 .负源代码0、反码补码1

小数位数:

1 .正数0

2 .负源代码补码0、反码1

8.10.5评审

8.11源代码乘法计算

手工计算乘法的过程

加起来再移位

逻辑向右移动,高位补0,低位舍弃

原符号一位乘法(手算) ) ) ) ) ) ) ) ) ) )。

整数乘法类似于小数

8.12补数的乘法

补数与源代码乘法比较:

1 .补数: n圈加法、移位、再加一次

2 .补数:加法运算的数量不同(MQ中最低位,根据辅助位判定) )。

3 .补码在算术上向右移位

4 .符号位参与运算

辅助位是指将MQ寄存器增加1位

手算 补码乘法

算术右移:符号位不动,数字位右移,正数右移补0,负数右移补1

8.13原码除法8.13.1运算器的基本构成

运算器:实现算术运算、逻辑运算

除法:

1. ACC :被除数、除数

2. MQ :商

3.X :除数

8.13.2恢复剩余法

商上升到0/1,得到馀数,在馀数的最后补充0

默认的上商1如果不再改变为上商0,则恢复馀数

应该是商0

手工计算:恢复剩余法

8.13.3加减交替法

如果馀数为负,可以直接交易0,将馀数向左偏移一位,加入除数的绝对值。

正数商1时,减去除数的绝对值

被除数只小于除数,计算机由最初计算的商确定,如果保持1结束运算,机器就不能表示这个定点数。

8.14补数除法8.14.1加减交替法

补码除法:

1 .符号位参与运算

2.2采用符号位

末尾恒置1

8.15除法评审

8.16强制类型转换

c语言的定点整数以“补数”保存

8.17大小端模式大端:方便人类阅读

小段:机器容易操作

如何保存边界对齐

现代计算机通常对应于字节地址,即每字节一个地址

通常也支持以字为单位、半字为单位、字节为单位的寻址

假设存储字长为32位,则2是一个字=32bit,半字=16bit。 每次访问只能读写一个字符

将字地址逻辑向左移动2位得到字节地址

边界不规则列的保存方法:

改变时间

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。