《计算机组成与体系结构(原书第4版)》 —2.3.2 小数的转换

举报
华章计算机 发表于 2019/11/18 22:08:24 2019/11/18
【摘要】 本节书摘来自华章计算机《计算机组成与体系结构(原书第4版)》一书中第2章,第2.3.2节,作者是[美] 琳达·纳尔(Linda Null)朱莉娅·洛博(Julia Lobur)宾夕法尼亚州立大学,张 钢 魏继增 李雪威天津大学 李春阁 何 颖天津大学仁爱学院 译。

2.3.2 小数的转换

任何基数系统中的小数在任何其他基数系统中可以近似为这个基数的负幂次方。基数小数点将一个数字的整数部分与小数部分分隔开。在十进制系统中,小数点被称为十进制小数点。二进制小数有二进制小数点。

在一个基数小数点的右边包含循环数字串的小数在另一个基上不一定有循环的数字序列。例如,2/3是一个循环的十进制小数,但在三进制系统中它的结果是0.23(2×3-1=2×1/3)。

转换整数时使用的重复减法和除留余数法的类似方法可以在不同基数之间转换小数。例2.5显示了如何使用重复减法把十进制数字转换到五进制。

例2.5转换十进制数字0.430410到以5为基的数字。

image.png

从上到下读,得到:0.430410=0.20345。

因为除留余数方法使用基数的正幂数来转换整数,所以我们将使用乘法来转换小数,因为它们以基数的负幂数表示。然而,不是像上面操作的那样找余数,我们只使用乘以基数之后得到的整数部分。答案是从上读到下而不是从下到上。例2.6说明了该过程。

例2.6转换十进制数字0.430410到以5为基的数字。

image.png

从上到下读,得到:0.430410=0.20345。

这个例子被设计成在执行几步后就停止了。通常情况下,事情并不那么顺利,最终以循环小数结束。大多数计算机系统有专门的舍入算法,以提供一个可预测的准确度。然而,为了清楚起见,当所需的精度已经达到时,我们将简单地丢弃(或截断)后面的数字,如例2.7所示。

例2.7转换十进制数字0.3437510为二进制数字,保留二进制小数点后4位。

image.png

从上到下读,得到:0.3437510=0.01012。

刚刚描述的方法可以直接将任何基数中的数字转换到其他基数,如从基数4到基数3(见例2.8)。然而,在大多数情况下,首先转换为基数10然后再到所需的基数,这会更快和更准确,当在两个幂的基数之间转换时这个规则是一个例外,关于这一点会在下一节看到。

例2.8转换四进制数31214到以3为基的数。

image.png


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。