计组2.2——数据在计算机中的存储

定点数和浮点数

在这里插入图片描述

定点数

定点数的表示和运算
定点数的表示
定点数的运算
加减运算 <重点>判断溢出
移位运算 <重点>
算数移位
原码/反码/补码
逻辑移位
循环移位
乘法运算
乘法运算实现思想
原码一位乘法
补码一位乘法
除法运算
无符号数
有符号数
原码
反码
补码

无符号数

在这里插入图片描述

有符号数的定点表示——定点整数和定点小数

在这里插入图片描述
在这里插入图片描述
n(数值部分)+1(符号位)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
用加法代替减法
计算12进制的10-3
10-3=7
10+9=19 19%12=7
-3%12=9
9%12=9
在这里插入图片描述
在这里插入图片描述
计算机如果是8bit字长,那么就天然决定了计算机所有的运算都是mod2^8的条件下进行的
使用原码计算需要减法器,减法器硬件电路复杂,用补码将减法转变为加法,找到负数的补数

移位运算

1.算术移位

通过改变各个数码位和小数点的相对位置,从而改变各数码位的位权。可用移位运算实现乘除
在这里插入图片描述

1.原码算数移位

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.反码算数移位

在这里插入图片描述

3.补码算术移位

在这里插入图片描述
补码的算数右移/2
补码的算数左移*2
位数有限,有时无法用算数移位精确等效乘除法

4.计算机硬件的乘法是基于算数移位和加法完成的

在这里插入图片描述

2.逻辑移位

应用:将RGB代表的三个字节的数连成整体,就是让RGB三个字节分别左移16字节,8字节,0字节再相加

3.循环移位

适合把一个数据的高字节和低字节互换

加减运算溢出判断

在这里插入图片描述
在这里插入图片描述
超出边界后,从左边到右边

硬件判断溢出

法一:单一符号位

在这里插入图片描述
与门或门非门可以设计硬件电路

法二:双高位判别法

在这里插入图片描述
注意最高数值位、符号位、进位位
本应该得到正的,实际得到负的——>上溢
本应该得到负的,实际得到正的——>下溢

法三:双符号位

在这里插入图片描述
更高的符号位表示本来应该得到的正负性,第二个符号表示实际的到的正负的结果
在这里插入图片描述
双符号位补码11,1110111逗号前面看作20 , 21,所有的都是小于22=4,所以称为模四补码,单同理符号位

防止溢出:符号扩展

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

乘法运算

如何由机器实现乘法
1.符号位如何处理?
2.考虑寄存器可以保存的最大容量,不够怎么办?
3.乘出来得到的中间状态反别保存在单独的寄存器中?
在这里插入图片描述

原码一位乘法:

1.如果乘数的当前位为1,则让ACC的值加上被乘数,如果当前位为0,则什么也不加,这个过程由算术逻辑单元ALU中的加法电路完成
2.乘数和ACC一起逻辑右移,ACC中的数进入了存储乘数的寄存器MQ,这样使得下一个位积和当前位积有了一个错位的相加,然后就是计算次低位和被乘数的位积
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

补码的乘法:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

除法运算

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

原码除法:恢复余数法

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

原码除法:加减交替法

在这里插入图片描述
在这里插入图片描述
每进行一次加减就要更新一次余数,每更新一次余数就要根据余数的正负性确定一位商,最后一次可能还需要恢复余数,所以加减可能是n+2次
定点小数的除法运算,正常情况下第一步减去除数,一定要得到一个负值,如果第一步商1说明被除数比除数大,这种除法无法用定点小数表示,
在这里插入图片描述
余数可能为正,可能为负,不需要修正,末位恒置为1保证精度并且
小结:
在这里插入图片描述

强制类型转换

在这里插入图片描述

数据的存储和排列:

1.大小端模式

在这里插入图片描述

2.边界对齐

在这里插入图片描述
转换为字节地址:
字 ————> 半字 ————> 字节
逻辑左移一位 逻辑左移一位

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值