我的编程空间,编程开发者的网络收藏夹
学习永远不晚

小数的表示方法之怎么使用定点数

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

小数的表示方法之怎么使用定点数

本篇内容主要讲解“小数的表示方法之怎么使用定点数”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“小数的表示方法之怎么使用定点数”吧!

在数字信号处理中往往都需要进行大量的数字运算,比如,数字信号的解调,需要采集大量的IQ数据对其进行解调运算。在实际的研究和学习中我们一般会在操作系统中利用丰富的软件给我们提供的便捷的计算工具进行计算(Matlab、Python等),这可以很方便的处理我们所研究的数字信号。然而,学过计算机原理或者汇编语言的同学会清楚,数据的运算的最终是在计算机硬件上来完成的,我们在操作系统层面的数据运算往往意味着需要进行大量的资源的调度。

虽然现在的计算机的性能已经非常的强大,但是对于面向应用的产品来说,其处理器性能往往和计算机不能相提并论。

通常,在通信、图像等数字信号处理中,会采用硬件芯片的方式进行数据运算(DSP、FPGA等),通过这种硬件芯片上进行数字信号运算,可以很好的提高运算效率,这也在工程应用中广为采用的一种方式。

在这些处理器中往往各种数据都是通过整数形式存储(比如,通信中的IQ数值的存储)。实际上,我们需要进行运算的数据大多都是小数,那么,该怎么解决呢?一般的我们可以通过定点数这种方式来表示小数。

什么是定点数

定点数英文名叫Fixed Point  Number,其关键地方就在定和点这两个字上面,即在表示小数数据时,把小数点的位置已经约定好固定在某个位置。与之对应的是浮点数,其小数点的位置不是固定的,关于浮点数先不做展开。

小数的表示方法之怎么使用定点数

定数表示

在定点数中,小数点可以将数据分为整数和小数部分,因此我们可以约定小数点在数据中的不同位置,就可以表示不同大小和精度的小数。例如,当小数点位置约定在符号位和数值位之间,就表示纯小数;当小数点约定在最末尾位置时,就可以表示纯整数。

小数的表示方法之怎么使用定点数

纯小数

小数的表示方法之怎么使用定点数

纯整数

如何描述定点数的这种规则呢?其实,我们可以使用两种方法来表示:

  • Q来表示法Qx,x表示小数的位数。

  • S表示法Sx.y,x表示整数位数,y表示小数位数。

我们知道在计算机中根据是否存在符号位可以分成无符号整数和有符号整数,当然,对于定点数也可以根据有无符号位分为:

  • 无符号定点数:无符号位

  • 有符号定点数:有符号位

无符号定点数

无符号定点数,数值在机器中字长的全部二进制位中没有符号位,全都是数值位。例如,小数1.2转换成16位的定数,小数点的位置约定在第14位和第15位之间。

小数的表示方法之怎么使用定点数

无符号Q14

根据计算结果,小数1.2可以用Q14格式的无符号定点数19661表示。

无符号定点数比较简单,不存在负小数;但是,有符号定点数就没这么简单了,因为存在正负数,其计算方法也不尽相同。

原码、反码、补码

原码、反码、补码在大多数的计算机编程相关的书籍里基本上都会提到。在学习有符号定点数之前,我们需要先复习一下原码、反码和补码。因为数据在计算中的存储方式是以补码的形式存储的,在学习有符号定点数之前,所以,我们有必要先复习这部分内容。

  • 原码:最高位作为符号位(无符号则没有符号位),其他位是数据二进制真值绝对值。例如,无符号数5,其8位二进制数的原码为0000  0101;有符号数5,其8位二进制的原码为0000 0101;有符号数-5,其8位二进制的原码1000 0101。

  • 反码:正数的反码是其原码本身,负数的反码在其原码的基础上符号位不变,其他位取反。例如,无符号数5,其8位二进制数的反码为0000  0101;有符号数5,其8位二进制数的反码为0000 0101;而有符号数-5,其8位二进制的反码为1111 1010。

  • 补码:正数的补码就是其本身,负数的补码是在其反码基础上加1。例如,无符号数5,其8位二进制数的补码为0000  0101;有符号数5,其8位二进制数的补码为0000 0101;而有符号数-5,其8位二进制的补码为1111 1011。

对于正数来说,

原码 = 反码 = 补码

对于负数来说,

反码 = 符号位不变,原码取反 补码 = 反码 + 1

有符号定点数

有符号定点数,需要专门取一位数据位作为符号位,通常,符号位上的1表示负数,0表示正数,其余位为数值位。例如,将小数0.8和-0.8转成Q15格式的定点数。

小数的表示方法之怎么使用定点数

有符号Q15

求正数0.8的定点数:

求负数-0.8的定点数:

小数的表示方法之怎么使用定点数

在有符号定点数中,需要要注意负数的计算与正数有所不同。

到此,相信大家对“小数的表示方法之怎么使用定点数”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

小数的表示方法之怎么使用定点数

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

oracle中整数补足两位小数点怎么表示出来的

有四种方法可以在 oracle 中将整数补足两位小数点:使用 to_char() 函数、使用 lpad() 和 substr() 函数、使用 to_number() 和 trunc() 函数或使用 round() 函数。如何在 Oracle
oracle中整数补足两位小数点怎么表示出来的
2024-05-07

vue使用directive限制表单输入整数、小数的方法

这篇文章主要介绍了vue使用directive限制表单输入整数,小数,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
2023-05-14

使用EditText怎么限制小数点前后的位数

今天就跟大家聊聊有关使用EditText怎么限制小数点前后的位数,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。在EditText输入数字的时候,通常我们需要限制小数点前后位数。比如金
2023-05-31

java数组方法怎么定义和使用

定义一个数组方法的语法如下:```public static [] ( [] ) {// 方法体}```其中,`data_type` 表示数组元素类型,`method_name` 表示方法名,`array_name` 表示数组名称。方法
2023-06-10

SQL之patindex函数的使用方法是什么

在SQL中,PATINDEX函数用于查找一个字符串在另一个字符串中第一次出现的位置。它的语法如下:PATINDEX(pattern, expression)其中,pattern是要搜索的模式字符串,可以包含通配符,expression是要
SQL之patindex函数的使用方法是什么
2024-04-09

Android编程使用ListView实现数据列表显示的方法

本文实例讲述了Android编程使用ListView实现数据列表显示的方法。分享给大家供大家参考,具体如下: 要将数据库中的数据列表显示在屏幕上,我们要使用ListView这个控件,当用户从数据库中取出数据时,要将数据绑定到显示控件上,如何
2022-06-06

帝国cms使用自定义函数获取用户发表新闻数量的方法

介绍了帝国cms系统中通过用户自定义函数获取用户发表新闻数量的方法,主要是分享下帝国cms自定义函数功能。 在帝国cms中实现获取用户发表的新闻数量,没有现编程客栈成的方法,不过可以用自定义函数来实现,一起来看看。 帝国chttp://
2022-06-12

Java中小数点后多余的0怎么使用正则表达式实现删除

这篇文章给大家介绍Java中小数点后多余的0怎么使用正则表达式实现删除,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。具体如下:package test;/** * 去掉多余的.与0 * @author Hust * @
2023-05-31

Proxy的不可变数据优点及使用方法是什么

这篇文章主要介绍“Proxy的不可变数据优点及使用方法是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Proxy的不可变数据优点及使用方法是什么”文章能帮助大家解决问题。可变数据对象被赋值后,更
2023-07-05

es6中新增的数组方法怎么使用

本文小编为大家详细介绍“es6中新增的数组方法怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“es6中新增的数组方法怎么使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。es6数组方法有:1、Array.
2023-07-05

python之怎么使用线程池map()方法传递多参数list

这篇文章主要介绍“python之怎么使用线程池map()方法传递多参数list”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“python之怎么使用线程池map()方法传递多参数list”文章能帮助大
2023-07-05

怎么在python中使用tolist()方法将数组转换为列表

本篇文章给大家分享的是有关怎么在python中使用tolist()方法将数组转换为列表,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。python的五大特点是什么python的五
2023-06-14

使用正则表达式数字检验的方法是什么

使用正则表达式数字检验的方法是通过在正则表达式中使用特定的字符或字符集来匹配数字。以下是一些常见的正则表达式数字检验方法:1. 匹配任意数字:\d2. 匹配1个或多个数字:\d+3. 匹配0个或多个数字:\d*4. 匹配指定数量的数字:\d
2023-05-31

Vue的MVVM模板语法和数据绑定怎么使用

本篇内容介绍了“Vue的MVVM,模板语法和数据绑定怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1. Vue概述Vue官网英文官网
2023-06-22

python函数的两种嵌套方法怎么使用

本篇内容介绍了“python函数的两种嵌套方法怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!交叉嵌套交叉嵌套的方式是在本函数中调用同
2023-06-29

编程热搜

目录