浮点数的表示及规格化——计算机组成原理
需积分: 19 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. 补充说明
在浮点数的表示中,正数和负数的表示方式是不同的。正数采用原码表示,而负数采用补码表示。这是由于补码的表示方法可以更好地处理负数的运算。
六、总结回顾
本文主要介绍了计算机组成原理中,浮点数的表示。通过科学计数法的理解,我们知道浮点数是如何表示的,并且对浮点数的规格化进行了详细的解释。同时,我们也了解了浮点数的表示范围以及原码和补码的表示方式。通过学习浮点数的表示,我们可以更好地理解浮点数在计算机中的运算过程。
299 浏览量
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
![](https://profile-avatar.csdnimg.cn/b99bc5de664b4271b19dd436b49d9d23_m0_55746113.jpg!1)
雨翼轻尘
- 粉丝: 7w+
最新资源
- 技术顾问的TFIPreWork项目介绍与实践
- 深入理解JAVA数据结构与算法
- 深入分析BPM测试工具:MixMeister BPM Analyzer
- 项目31:PROC41-模板的JavaScript应用实例
- 中国交通标志CTSDB数据集12: 800个图像与文本训练样本
- 学习心得记录与思路分享
- 利用ASP.NET SignalR打造实时聊天室教程
- Oracle数据库用户管理技巧与工具解析
- EasyUI界面组件模板代码大全
- 网页及C#表单设计通用小图标资源分享
- Prefab.js:掌握JavaScript中的原型继承技术
- Spring MVC与Redis、MyBatis及JDBC集成教程
- 基于STM32的互补滤波姿态解算技术
- Java平台的ModcraftWin模组开发工具介绍
- ISR算法在GWAS和上位性检测中的应用与优势分析
- 掌握编码面试技巧:LeetCode交互式挑战分析