浮点数的表示及规格化——计算机组成原理

需积分: 19 3 下载量 108 浏览量 更新于2023-12-31 收藏 9.08MB PDF 举报
计算机组成原理之浮点数的表示 一、引子 通过之前几个小节的学习,我们已经知道了定点数怎么在计算机里表示,包括定点整数和定点小数。从这个小节开始,我们要学习浮点数在计算机里的表示和运算。这个小结中,我们先介绍浮点数如何表示。我们会介绍浮点数它有什么作用,还有一个基本的原理。另外,考试中常考的一个问题是浮点数的规格化。最后,我们还会简单地介绍浮点数的表示范围相关的问题。这方面的内容其实已经从考研大纲里边删除了。所以关于浮点数的表示范围,我们只做一个简要的了解。 二、定点数的局限性 首先来看一下我们之前学习的定点数它有什么局限性。来看这样的一个故事,我现在的财富净值是-8540块钱,为什么是一个负值?因为今天刚好是我的蚂蚁花呗的还款日。我的这些财富,这些净资产其实可以用一个2字节的short短整型变量就可以表示。 然而,在某些情况下,定点数并不能满足我们的需求。比如,当我们需要表示非常大或非常小的数时,定点数的表示范围就会有限制,不能够准确地表示这些数。而浮点数的出现就能够解决这个问题。 三、从科学计数法理解浮点数 1. 十进制 在浮点数的表示中,我们常使用科学计数法。以十进制为例,科学计数法将一个数表示为一个有限的数字乘以10的幂。比如,300000可以表示为3 x 10^5。这样,无论数的大小如何,都可以用有限的位数来表示。 2. 二进制 在计算机中,我们使用二进制进行计算和表示。同样地,浮点数的表示也采用了科学计数法的思想。浮点数的表示由两部分组成:尾数和指数。 浮点数的表示 浮点数的表示相比于定点数更加灵活。它将一个数表示为一个尾数乘以2的指数次幂。其中,尾数可以是任意数字,指数可以是任意整数。 补充练习 为了更好地理解浮点数的表示,我们进行一些练习。假设我们希望表示数值12.75,首先我们需要将数值转换为二进制形式。 浮点数尾数的规格化 在浮点数的表示中,尾数的规格化是非常重要的。它可以提高浮点数的精确度和表示范围。 1. 左规 左规是将尾数左移,使其最高位为1。以十进制为例,如果尾数是0.101,左规将其变为1.01。同样,对于二进制的尾数,左规的步骤也是类似的。 2. 右规 右规是将尾数右移,使其最低位为1。以十进制为例,如果尾数是1.01,右规将其变为0.101。同样,对于二进制的尾数,右规的步骤也是类似的。 规格化浮点数的特点 1. 原码 在浮点数的表示中,原码有正数和负数两种情况。正数的原码与其本身相同,负数的原码则是其绝对值的原码前面加上一个符号位。 2. 补码 在浮点数的表示中,补码同样分为正数和负数两种情况。正数的补码与其原码相同,负数的补码是将其原码各位取反(包括符号位),然后加1。 3. 案例 为了更好地理解原码和补码的表示,我们进行一些案例分析。 4. 补充说明 在浮点数的表示中,正数和负数的表示方式是不同的。正数采用原码表示,而负数采用补码表示。这是由于补码的表示方法可以更好地处理负数的运算。 六、总结回顾 本文主要介绍了计算机组成原理中,浮点数的表示。通过科学计数法的理解,我们知道浮点数是如何表示的,并且对浮点数的规格化进行了详细的解释。同时,我们也了解了浮点数的表示范围以及原码和补码的表示方式。通过学习浮点数的表示,我们可以更好地理解浮点数在计算机中的运算过程。