计算机组成原理-机器数、浮点数


这一块也是非常的重要和基础,非常容易得分,但也非常容易错。
所以我今天决定把这些知识点稍微过一遍,如果我已经熟记于心的一些东西我就会提一嘴,如果大家对于这些问题有所疑问,可以留言,也可以自行再百度学习。

基础知识

首先就要具备一些相关的知识背景,我大概想到的就说一下如果有所缺漏就自行补足。

进制转换

1.十进制、二进制、十六进制相互转换
2.整数、小数十进制转二进制。
ps:我之前写题的时候不是很理解二进制该如何转换成十进制的小数,趁现在这个功夫学习了一下,其实也就是对位相乘,只不过乘的是负次方,验算结果是对的。数为0.875
在这里插入图片描述

特殊码制

说到特殊码制我觉得更多的应该是区别于BCD码,BCD码最大的特点应该就是BCD码是用4位二进制码表示一个十位数,而与进位和加和无关…我怎么突然不会说话了,突然就不知道该怎么解释了。
我用一个例子最清晰的表达吧。
在这里插入图片描述就是 BCD码转的时候不用考虑进位

定点数浮点数表示

什么是定点数,就是小数点确定,不变的数,与之相对应的就是小数位会变动的浮点数。

定点小数/定点整数

定点小数就是纯小数,小数点位置在符号位之后,小数之前
定点整数就是纯整数,小数点位置在个位之后

原码、补码、反码、移码

关于这几种码制需要掌握原码到这些码该怎么变。

原码补码移码
正数xxx+偏置常数
负数x符号位不变,数值取反,末位加一x+偏置常数

相关问题

十进制转浮点机器数

在题目中可能会给到机器数的表示格式,给出一下几个量,我们在此介绍一下
数符:表示该数的正负
阶符:表示阶数的正负,如果是正阶,例如2次方就直接可以拿来拿来跟阶码一起并用
阶码:用来存储阶数。一定要记住如果题目中偏置常数且阶码用移码表示,一定不要忘记加上偏置常数(我踩过的坑)
尾数:小数位二进制
题目设置方式一般是给你一个格式,给一个十进制数,让你转成浮点机器数:
在这里插入图片描述方法论如下

把十进制数化成二进制
规格化
对应写成机器数

根据这个方法我们对这个数进行操作
首先把十进制数化为二进制数
在这里插入图片描述顺便补一下前面的一些操作,供大家对照
然后我们进行规格化
规格化法则:
如果尾数用原码规格化
正数:0.1xxxx形式
负数:1.1xxxx形势
补码规格化
整数:0.1xxxx形式
负数:1.0xxxx形式

根据这个法则来看,10000000.11由于是整数,应该要将小数点移到第一个1的前面,移位8位,即阶码-2+8=6
结果为0.1000000011*2^6
规格化之后我们就可以对应的写成机器数
数符-正数=0
阶符+阶码=6+16(偏置常数)=22-10110
尾数=1000000011
整体为0101 1010 0000 0011 0000-5A030H

机器数加减

既然我们已经可以转成机器数,这个时候顺理成章发生的一件事情就是我们有了另一个机器数,就可以加减了!
但是通常我们的两个机器数阶数会不一致,这个时候我们关于这类题目的处理方式就会有所增加
方法论如下

对阶使两个操作数的小数点位置对齐(小向大对齐)
尾数求和对阶后的尾数相加减
规格化按正常规格化进行
舍入(针对尾数)如果尾数溢出就需要舍入
溢出判断(针对阶数)不要加偏置常数进行判断是否溢出

我们在之前的5A030H基础上再加一个机器数D9F00H,让其进行机器数相加
1.化浮点数
在这里插入图片描述这个时候我们发现与之前的0.1000000011*2^6阶数相等故不需要对阶
接下来直接进行尾数加和
在这里插入图片描述进行舍入判断时发现尾数此时并没有超出14位,无需舍入
同时溢出判断,6位阶码也没有溢出,没有溢出
直接写成机器数即可-答案为C0C00H

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值