计算机组成原理——浮点运算

本文深入探讨了浮点数的加减运算过程,包括对阶、尾数求和、规格化和舍入策略。同时,介绍了浮点数乘除运算,只需尾数做补码运算,阶数做加减。还涉及了浮点数的溢出判断和规格化特殊情况,对理解浮点数的内部操作和精度管理具有指导意义。
摘要由CSDN通过智能技术生成

一、浮点数加减运算

在计算机中,浮点数遵循补码运算
浮点数表示:两位尾符,尾数;两位阶符,阶数

1) 对阶
	1、求阶差
		△j = jx - jy
	2、小阶向大阶看齐
		若 △j < 0,则 x 向 y 看齐
		若 △j > 0,则 y 向 x 看齐
	原因:当指数增大时,尾数就要向右移(对二进制来说),这时可能会丢失最后面的最低位
		  当指数减小时,尾数就要向左移,这时可能会丢失最前面的最高位
		  当 100001 * 2 ^ 8 丢失最后一个 1 的时候,变成 10000 * 2 ^ 9,丢失了较小的精度 1100001 * 2 ^ 8 丢失最先一个 1 的时候,变成 1 * 2 ^ 7,数据发生了错误
		  (上面的数只是为了说明,一般浮点数需要规格化)

2) 尾数求和
	对阶后的尾数遵循二进制的加减法,求和即可

3) 规格化
	一般的浮点数规格化形式:0.1--- * 2 ^ n
	所以,对于正数而言:
		规格化:原码、补码的形式都是 0.1--- * 2 ^ n
	对于负数而言:
		真值:-0.1--- * 2 ^ n
		原码:1.1--- * 2 ^ n
		补码:1.0--- * 2 ^ n
	
	特例:
		[-1/2]补不是规格化的数 1.100---0
		[-1]是规格化的数 1.00---0
	1、左规(算数移位)
		当 2 ^ -1 位表示的真值为 0 的时候,尾数左移,阶数 -1
	2、右规(可看做逻辑右移)
		当 两位符号位不一致 的时候,尾数右移,阶数 +1

4) 舍入
	在尾数右移的所有环节,可能会发生精度的丢失,这时需要进行舍入:
		101 入(常用)
		2、恒置 1
5) 溢出判断
	浮点数所能表示的
		最大正值:指数最大,尾数最大
		最小正值:指数最小,尾数为最小的正值
		最大负值:-最小的正值
		最大正值:-最大的正值
	对于规格化的数和非规格化的数所能表示的最大最小值是不一样的
	
	对于这里的运算而言,尾数在移位的过程中进行了舍入,所以对于某个溢出来说,规格化的尾数是不会影响的,
	只需要看阶数是否发生溢出即可。对于 n 位数值部分的阶码来说,最大值 2 ^ n - 1, 最小值 - 2 ^ n.

二、浮点数乘除运算

对于乘除法,只要尾数做补码乘除法,阶数做加减法就行了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值