希赛考试网
首页 > 软考 > 软件设计师

计算机中定点数和浮点数的表示方法

希赛网 2023-11-18 16:03:13

计算机是一种数字计算工具,按照二进制方式存储和处理数据。数值在计算机内部的存储方式分为两种:定点数和浮点数。本文将从多个角度对这两种数值的表示方法进行分析。

一、定点数的表示方法

计算机内部的所有数值都是以二进制补码的方式来进行表示的。在计算机中用$n$位二进制数表示一个定点数时,首先要给出一个固定的小数点位置。在小数点左边的部分(称为整数部分)是用模拟标准二进制(即原码)表示,而小数点右边的部分(称为小数部分)则是用固定的位数来表示。

例如,假设我们用8位二进制表示一个小数,其中小数点位置为第4位,那么对于正数$5.875$,其定点数的表示方法为:

$$\begin{aligned}5.875&=5+0.875\\ &=101.111_2\\ &=0101.1110_2\end{aligned}$$

因为这是一个正数,所以它的二进制补码就是它自己。因此,我们可以用$01011110_2$来表示这个定点数。

二、浮点数的表示方法

浮点数是一种能够表示非常大或非常小的实数的数值类型,在计算机科学中广泛使用。浮点数采用科学计数法的形式表示,由三个部分组成:符号位、指数和尾数。

符号位用于表示这个实数的正负性,指数用于表示这个实数的基数移动多少位,尾数则表示小数点后面的有效数字。

IEEE 754标准将浮点数表示方法标准化了。在这个标准中,单精度浮点数(即32位浮点数)的表示方法如下:

第1位表示符号位,0表示正数,1表示负数;第2-9位表示指数部分,采用移码表示法,其中真实指数为指数部分的值减去127;第10-32位表示尾数部分,最高位默认为1。

例如,对于实数$-3.75$,其浮点数的表示方法为:

$$\begin{aligned}-3.75&=-11.11_2\\ &=-1.1111\times2^1\\ &=-111.1\times2^{-2}\end{aligned}$$

因为它是一个负数,所以符号位为1。真实指数为$1-127=-126$,二进制表示为$10000010_2$。尾数的二进制表示为$11110000000000000000000_2$,因为最高位默认为1,所以不需要显式地存储。

因此,$-3.75$的单精度浮点数的二进制表示为$11000001011110000000000000000000_2$。

三、定点数和浮点数的比较

1. 数值范围

在相同的位数下,定点数的数值范围比浮点数要小。比如,对于8位二进制数,定点数的最大值为$2^{7}-1=127$,最小值为$-2^{7}=-128$,而单精度浮点数可以表示的最大值约为$3.4\times10^{38}$,最小值约为$1.4\times10^{-45}$。

2. 精度

在相同的位数下,定点数的小数位数是固定的。如果要增加精度,就需要增加整数部分的位数。而浮点数的小数位数是可以变化的,可以根据需要进行调整,因此浮点数具有更高的精度。

3. 计算速度

定点数的加法和减法比较简单,可以直接进行二进制下的加减。而浮点数的加法和减法涉及到指数的比较和移位操作,计算速度相对较慢。

微信扫一扫,领取最新备考资料


软考.png


软件设计师 资料下载
备考资料包大放送!涵盖报考指南、考情深度解析、知识点全面梳理、思维导图等,免费领取,助你备考无忧!
立即下载
软件设计师 历年真题
汇聚经典真题,展现考试脉络。精准覆盖考点,助您深入备考。细致解析,助您查漏补缺。
立即做题

软考报考咨询

微信扫一扫,定制学习计划