Logo
Section 1 / 8

定点数表示法

学习如何使用定点表示法来表示带有小数部分的数字。

检查点

定点数表示法

学习如何使用定点表示法来表示带有小数部分的数字。

二进制中的分数

我们已经学习了如何用二进制表示整数——正数和负数,以及如何进行二进制除法,但你可能会好奇:我们该如何表示分数?

在二进制中表示分数至关重要,因为我们在使用计算机模拟许多现实世界场景时需要处理分数。

让我们先回顾一下十进制表示非整数的方法:

对于小数点后的每一位(即单位数 10010^0 位置的右侧),其值等于 110n\frac{1}{10^n}。小数点后第一位的位权是 10−110^{-1},也就是 0.10.1;第二位是 10−210^{-2},也就是 0.010.01,依此类推。

因此,小数点左侧的位权按 1010 的幂递增,而右侧则按 1010 的幂递减。我们能否为二进制系统提出类似的方法?在二进制中表示分数有两种方法。一种是定点表示法,本课将介绍这种方法;另一种是浮点表示法,将在本章后续内容中讲解。

什么是定点表示法?

在十进制系统中,我们引入了一个符号“.”(称为基数点),用来区分哪些数字遵循 10n10^n 的数值体系,哪些遵循 110n\frac{1}{10^n} 的数值体系。

例如,即使数字 34.6734.67 和 3.4673.467 包含相同的数字且顺序一致,但小数点的位置不同,它们的值也完全不同。

不幸的是,即使我们在二进制中引入类似的符号(如基数点),也无法在计算机中实现。记住,二进制系统的两个状态是基于晶体管的两种工作状态。我们无法编码第三个符号。有没有解决办法?定点表示法就提供了一种方案。

从名字“定点表示法”就可以看出它的核心思想。我们仍将其明确写出:

定点表示法依赖一个预先确定的基数点。

这意味着,如果我们有一个 8 位的二进制数,并且系统已预先规定基数点位于从右往左的第二位和第三位之间,那么我们就能轻松表示分数。

在基数点位置固定的情况下,二进制数 1000111010001110 的值将与其原始二进制值完全不同。

位权

在二进制点的右侧,各位的位权为 12n\frac{1}{2^n},其中 n=1n=1 是紧邻二进制点右侧的一位,向右依次递增。

例如:

使用转换工具练习

我们的定点转换工具采用一种特定的表示方式:将二进制点置于第四位和第五位之间。与二进制转换工具类似,它用黄色表示开启的位(1),用灰色表示关闭的位(0),并在方框下方显示当前对应的十进制数值。点击方框可切换该位的状态。你也可以关闭位权显示来挑战自己。使用该工具最多可以表示到 15.937515.9375 的数值。

No configuration found for ID: c399bf027359066e014d6741074fafbce05d5392787752649f1eed5816c72bbb

自测练习!

Quiz

单选题

在定点数表示中,数字 1011001010110010 的前四位用于整数部分,后四位用于小数部分。这个二进制数表示的十进制值是多少?

1 / 1

带符号的二进制数

为什么我们需要浮点数?