定点数

定点数是指,数字在小数点之后和之前具有固定的位数。

可以用Qm.n表示法进行表示.

  • m位为整数部分

  • n位小数部分

  • 有符号数的总位数N = m + n + 1

当n=0时,则定点数用来存储整数。

定点数(整数)

定点数可以用来存储整数,包括正整数和负整数。定点(整数)表示的常见格式有unsigned integer, offset binary, sign and magnitude, two’s complement。

假设每个整数都用4个bit来表示,则在上面四种格式下,二进制和十进制之间的关系如下图所示。

Unsigned integer是最直观的二进制格式,用windows自带的计算器就能实现换算。

Offset binary与unsigned integer类似,不同之处是相同的二进制表示,offset binary下代表的十进制数与unsigned integer下代表的十进数有一个整体偏移,这样就可以表示负数。

比如在图1中,4 bit二进制数对应于整数-7~8,在offset binary格式下,十进制数整体偏移了7。

对于这个偏移量,没有固定标准,比如上面的偏移量是7,也可以为8。在ADC和DAC中,经常会用到offset binary.

sign and magnitude是表示负整数的另一种简单方法。 最左边的位为符号位,0代表正数,1代表负数。其他位是数字绝对值的标准二进制表示形式。因为对于零有两种表示形式,即0000(正零)和1000(负零),所以会导致一个浪费的位模式。

Two’s complement(二进制补码)是硬件工程师喜欢的格式,也是计算机中通常表示整数的方式。 最左边的位为符号位,0代表数字为正数或0,1代表数字为1。

其编码模式可以理解为:

对于4bit二进制,其二进制表示仍为0000~1111。如上图所示,将圆盘分为16等分,把0000~1111依次带入。然后以0为分界线,按顺时针转,即0000~0111代表0~7;按逆时针转,即1111~1000代表-1~-8。

采用二进制补码时,对于正数,在十进制数和二进制补码之间进行转换很简单,即从十进制到二进制的简单转换。 对于负数,通常使用以下算法:

(1)取十进制数的绝对值,

(2)将其转换为二进制,

(3)对所有位进行补码(1变为零,0变为1),

(4)在二进制数上加1。

二进制补码对人类的大脑来说比较复杂,但是在进行数据处理时,则非常方便。

定点数(小数)

以上是当N=16时,不同的m/n值时,所对应的动态范围和精度。

浮点数(实数)

浮点数的编码方案比定点的编码方案复杂,其基本概念与科学计数法中的基本思想相同,两者的不同点,在与浮点数的基为2,科学计数法的基为10。

ANSI/IEEE Std. 754-1985标准将32bit数据形式定义为单精度(single precision),64bit数据形式定义为双精度(double precision)。

以单精度为例,将其32位分为三个独立的组:位0到22形成尾数(记为M),位23到30形成指数(记为E),位31是符号位(记为S)。则:

IEEE标准将最大数和最小数的范围略微缩小,分别为

与定点设计相比,浮点设计会消耗更多的FPGA资源,带来更高的消耗。所以在满足指标要求的情况下,优先采用定点设计,可以有助于降低FPGA资源的使用、减少功耗。

文献[3]中,则阐述了,在保证指标的情况下,采用定点设计,可以减少资源使用,进而降低功耗。

参考文献:

[1]The Scientist and Engineer's Guide to Digital Signal Processing_Ch4

[2]EE 3610 Digital Systems

[3]Ambrose Finnerty and Hervé Ratigner,Reduce Power and Cost by Converting from Floating Point to Fixed Point

[4]Floating Point Converter:https://babbage.cs.qc.cuny.edu/IEEE-754.old/Decimal.html

相关文献下载,可回复消息:“ 定点、浮点数文献下载“

verilog 浮点转定点_定点数和浮点数相关推荐

  1. verilog 浮点转定点_定点数优化:性能成倍提升

    定点数这玩意儿并不是什么新东西,早年 CPU 浮点性能不够,定点数技巧大量活跃于各类图形图像处理的热点路径中.今天 CPU 浮点上来了,但很多情况下整数仍然快于浮点,因此比如:libcario (gn ...

  2. verilog 浮点转定点_浮点数0.1+0.2为何不等于0.3

    来自公众号:印记中文 本文由扇贝的前端工程师景国凯撰写,跟随作者一起了解浮点数的计算过程,掌握为何会出现精度丢失的根本原因. 之前简单介绍了二进制下整数的加减乘除基本运算,建议没看过的先去了解一下,这 ...

  3. verilog 浮点数转定点数_定点数转浮点数verilog

    本文目的是记录学习<数字信号处理的FPGA实现>过程中,用verilog语言实现简单的定点数到浮点数转换的经历. 若以f[31:0]表示一个单精度32位浮点数,f[31]是符号位,其为'0 ...

  4. c语言定点数和浮点数的转换,浮点数和定点数的相互转换(浮点数量化为定点)...

    1. 这篇博客将要讨论什么? 说来惭愧,做为计算机科班出身的人,计算机基础知识掌握并不扎实,这里的基础指的是计算机体系结构中的内容,诸如数据的表示和处理,如float的表示和运算等.看<CSAP ...

  5. verilog 浮点数转定点数_聊一聊定点数和浮点数的存储方式

    定点数和浮点数 本文中所提到的都是基于intel x86Cpu,开发环境是基于windows 10 + vs2019.本片博客需要读者自己明白十进制.十六进制.二进制之间的转换,文中不会介绍转换过程, ...

  6. 计算机原理之定点与浮点表示教案,计算机组成原理-定点数和浮点数.ppt

    计算机组成原理-定点数和浮点数 3.2.3 定点数和浮点数 计算机中的两种表示方式 数值范围:一种数据类型所能表示的最大值和最小值 数据精度:实数所能表示的有效数字位数. 数值范围和数据精度均与使用多 ...

  7. python浮点数类型与数学_Python3标准库:decimal定点数和浮点数的数学运算

    1. decimal定点数和浮点数的数学运算 decimal模块实现了定点和浮点算术运算,使用的是大多数人所熟悉的模型,而不是程序员熟悉的模式(即大多数计算机硬件实现的IEEE浮点数运算).Decim ...

  8. 浮点与定点的二进制存储

    1.浮点数和定点数存储 https://blog.csdn.net/niaolianjiulin/article/details/82764511 2.浮点转定点 本篇主要介绍另外一种浮点转定点的方式 ...

  9. matlab实现浮点转定点,浮点转定点方法总结.doc

    浮点转定点方法总结 浮点转定点方法总结 -孔德琦 目录 定点运算方法3 1.1 数 的 定 标3 1.2c语言:从浮点到定点4 1.2.1 加法4 1.2.2乘法6 1.2.3除法7 1.2.4 三角 ...

最新文章

  1. everything每次打开都会扫描_每次启动车,转方向盘都会咔一下,咋回事?
  2. PS教程第五课:套索工具进行抠图
  3. 未找到与约束ContractName,无法打开项目的解决方案
  4. linux环境下启动git,linux系统安装git及git常用命令
  5. 如何选择Spark Streaming 的Reveiver和Direct模式
  6. td.moveRow方法
  7. Wide Deep 模型详解
  8. [滑模控制器浅述] (1) 二阶系统的简单滑模控制器设计
  9. SAS时间序列分析案例--有季节效应的非平稳序列分析
  10. DIY多快充协议太阳能充电器!----BOOST升压电路
  11. 计算机网络技术思维导图幕布全整理(附网页版链接)
  12. The Basics of 3D Printing in 2015 - from someone with 16 WHOLE HOURS' experience
  13. 对五层网络协议体系结构的理解
  14. Perf -- Linux下的系统性能调优工具,第 2 部分
  15. 小白学爬虫---爬取中国房价工资比
  16. Maui Blazor windows程序无法通过双击 bin 文件夹中的 exe打开程序的解决办法
  17. 进程篇——了解Makefile文件
  18. 星光不问赶路人,时光不负有心人。
  19. 【向StoneDB迁移数据】数据迁移同步工具-Gravity
  20. MarkDown的常用语法,写出好看的md文章

热门文章

  1. MVC防止xss攻击 ——Html.AntiForgeryToken的AJAX提交
  2. 对公平席位分配问题的探讨:最大余数法、Q值法和D’Hondt方法及其特例|公平分配原则等
  3. 【剑指offer】面试题21:调整数组顺序使奇数位于偶数前面(Java)
  4. C++: error: call of overloaded ‘abs(int)’ is ambiguous
  5. c++错误functional:1526:9: error: no type named ‘type’ in ‘class std::result_of
  6. 查看文件详细信息linux,linux命令stat,查看文件详细信息
  7. shell 进入hadoop_php通过shell调用Hadoop的方法
  8. go 微服务框架_清晰架构(Clean Architecture)的Go微服务
  9. 自学python在家怎么上班_【经验分享】转行如何自学Python并且找到工作,分享自己心得...
  10. QT示例:基于TCP点对点Socket通讯