首页 > 编程知识 正文

定点数分(定点是什么意思数学)

时间:2023-05-06 06:18:14 阅读:103140 作者:1142

微信搜索关注“水滴银弹”微信官方账号,第一时间获取优质技术干货。7年资深后端研发,用简单的方式把技术讲解清楚。

在现实生活中,我们经常使用整数和小数。不知道你有没有想过这些数字是怎么存储在电脑里的。

我们在学习计算机知识的时候,经常会听到“定点数”和“浮点数”。它们之间有什么区别?

通常说到整数,我们说是定点数,说到小数,就是浮点数。这是正确的吗?

在本文中,我们首先来看看“不动点”与整数和小数的关系。

00-1010要理解“不动点”是什么,首先需要理解“不动点”到底是什么意思。

众所周知,数字既包括整数也包括小数,小数的精度范围要比整数大得多,所以要想在计算机中同时表示整数和小数,关键在于如何表示这个小数点。

于是人们想出了一个办法,就是把小数点在计算机中的位置固定下来,把小数点前后的数字分别用二进制表示出来,然后把它们组合起来就可以存储在计算机中。这种表示称为“定点”表示,用这种方法表示的数字称为“定点”。

也就是说,“固定”就是固定,“点”就是小数点,小数点的固定位置就是固定点名称的由来。

什么是定点数?

既然定点数只是表示数字的一种方式,它能表示整数吗?你能表示小数吗?

答案是肯定的。

如果定点数要表示整数或小数,可以分为以下三种情况:

纯整数:比如小数点实际上是最后一位,所以忽略不写纯小数点:比如0.123,小数点固定在最高位的整数小数点:比如1.24,10.34,小数点在指定位置。对于前两种情况,纯整数和纯小数点,因为小数点是固定在最低位和最高位的,当它们用定点表示时,原理是一样的,只需要整数部分。

对于整数小数,在使用定点时,需要约定小数点的位置,才能在计算机中表示出来。

定点数如何表示数字?

最好听到就看。我们举几个例子。我们先来看看定点是如何表示纯整数和纯小数的。

对于纯整数100,由于小数点固定在最低位,假设我们用1字节(8位)表示,用固定点表示如下(D为十进制缩写,B为二进制缩写):

100(D)=01100100(B)

对于纯十进制0.125,因为小数点固定在最高位,所以也用1字节(8位)表示,用固定点表示如下:

0.125(D)=0.00100000(B)

从上面的例子可以看出,用不动点来表示这两种情况是比较简单的,按照十进制到二进制的规律就可以得到结果。

定点数表示纯整数和纯小数

我们来看看定点是如何表示整数小数的。

在这种情况下,我们需要首先就小数点的位置达成一致。

仍然以1字节(8位)为例,我们可以同意前5位代表整数部分,后3位代表小数部分。

对于数字1.5,它是这样的,用不动点表示:

1.5(D)=00001100(B)

数字25.125用固定点表示。就是这样:

25.125(D)=11001001(B)

这是用定点表示小数的方法。下面是这个过程的总结:

在有限的位宽下,先约定小数点、整数部分和小数部分的位置,然后把它们转换成二进制来表示这两部分的二进制组合,即结果是,在计算机中,用固定的点来表示一个数的方法并不是很简单。

但是你发现问题了吗?我们同意前五位代表整数部分,后三位代表小数部分。此时这个整数部分的二进制最大值只能是11111,也就是31位小数,十进制部分的二进制最大值只能代表0.111,也就是0.875位小数。

如果我们想代表更广泛的价值观呢?

扩展位的宽度:比如用2字节和4字节,这样整数部分和小数部分的宽度都会增加,表示范围也会增加。改变小数点的位置:如果小数点后移,整个位数范围会扩大,但是小数部分的精度会越来越低,没有办法表示0.00001这样的高精度值。因此,我们发现无论如何约定小数点的位置,都会出现以下问题3360。

数值表示的范围是有限的(小数点越靠左,整个数值范围就越小)。数值精度的范围有限(小数点越靠右,数值精度越低)。一般来说,用定点表示的小数不仅数值范围有限,而且精度低。为了解决这两个问题,人们提出用“浮点数”来表示数字。我们将在下一篇文章中解释浮点数的表示方法。

虽然定点表示数字,上面也提到了这些问题,但只是在表示小数的场景中。如果只用来表示整数,那就非常方便了。

因此,现代计算机一般用不动点来表示整数。

在00-1010这篇文章中,我们主要讲了如何在计算机中用定点来表示一个数。总结如下:

定点数是计算机中表示数字的一种方式。它可以表示整数和数字。

小数在固定 bit 下,约定小数点的位置,然后把整数部分和小数部分分别转换为二进制,就是定点数的结果受限于小数点的位置,用定点数表示小数时,数值的范围和小数精度是有限的在现代计算机中,定点数通常用来表示整数,对于高精度的小数,通常用浮点数表示

微信搜索关注「水滴与银弹」公众号,第一时间获取优质技术干货。7年资深后端研发,用简单的方式把技术讲清楚。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。