浮点数机器数
基础知识进制转换特殊码制定点数浮点数表示定点小数/定点整数原码、补码、反码、移码 相关问题十进制转浮点机器数机器数加减这一块也是非常的重要和基础,非常容易得分,但也非常容易错。
所以我今天决定把这些知识点稍微过一遍,如果我已经熟记于心的一些东西我就会提一嘴,如果大家对于这些问题有所疑问,可以留言,也可以自行再百度学习。
基础知识
首先就要具备一些相关的知识背景,我大概想到的就说一下如果有所缺漏就自行补足。
进制转换
1.十进制、二进制、十六进制相互转换
2.整数、小数十进制转二进制。
ps:我之前写题的时候不是很理解二进制该如何转换成十进制的小数,趁现在这个功夫学习了一下,其实也就是对位相乘,只不过乘的是负次方,验算结果是对的。数为0.875
特殊码制
说到特殊码制我觉得更多的应该是区别于BCD码,BCD码最大的特点应该就是BCD码是用4位二进制码表示一个十位数,而与进位和加和无关…我怎么突然不会说话了,突然就不知道该怎么解释了。
我用一个例子最清晰的表达吧。
就是 BCD码转的时候不用考虑进位
定点数浮点数表示
什么是定点数,就是小数点确定,不变的数,与之相对应的就是小数位会变动的浮点数。
定点小数/定点整数
定点小数就是纯小数,小数点位置在符号位之后,小数之前
定点整数就是纯整数,小数点位置在个位之后
原码、补码、反码、移码
关于这几种码制需要掌握原码到这些码该怎么变。
相关问题
十进制转浮点机器数
在题目中可能会给到机器数的表示格式,给出一下几个量,我们在此介绍一下
数符:表示该数的正负
阶符:表示阶数的正负,如果是正阶,例如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
如果觉得《计算机组成原理-机器数 浮点数》对你有帮助,请点赞、收藏,并留下你的观点哦!