文档章节

定点数的定标

o
 osc_4nmshwhm
发布于 2018/08/06 23:50
字数 392
阅读 0
收藏 0

精选30+云产品,助力企业轻松上云!>>>

数的定标

概念

通过设定小数点在数据的不同位置,就可以表示不同大小和精度的小数。

Q和S表示法

以16位数据为例,Q和S表示法的存储格式为: Qx:x位用来表示小数部分,(15-x)位用来表示整数。 Sx.y:其中x+y=15,x位表示整数,y位表示小数。 精度:1/2^x(以Qx表示法为例说明) 括号里的内容为表示范围的小数部分怎么计算来的

下表为定点表示法可表示的十进制数范围

  • Q15 S0.15 -1->0.9999695(1-1/2^15)
  • Q14 S1.14 -2->1.9999390(1-1/2^14)
  • Q13 S2.13 -4->3.9998779(1-1/2^13)
  • Q12 S3.12 -8->7.9997559(1-1/2^12)
  • Q11 S4.11 -16->15.9995117(1-1/2^11)
  • Q10 S5.10 -32->31.9990234(1-1/2^10)
  • Q9 S6.9 -64->63.9980469(1-1/2^9)
  • Q8 S7.8 -128->127.9960938(1-1/2^8)
  • Q7 S8.7 -256->255.9921875(1-1/2^7)
  • Q6 S9.6 -512->511.9804375(1-1/2^6)
  • Q5 S10.5 -1024->1023.96875(1-1/2^5)
  • Q4 S11.4 -2048->2047.9375(1-1/2^4)
  • Q3 S12.3 -4096->4095.875(1-1/2^3)
  • Q2 S13.2 -8192->8191.75 (1-1/2^2)
  • Q1 S14.1 -16384->16383.5(1-1/2^1)
  • Q0 S15.0 -32768->32767.0(1-1/2^0)

定点数和浮点数相互转化

假设存在浮点数x和定点数xq,则二者转化公式如下:

x转换为xq:xq = (int)x*2^Q;<下取整>

xq转换为x:x = (float)xq*2^(-Q)

Q表示从Q0-Q15之间的定标

举例:x = 0.5,Q = Q1,则xq = 0.5*2^1 = 1; x = 0.5,Q = Q15,则xq = 16384。

假设xq = 100,Q=Q1,则x = 100*2^(-1) = 50.0; xq = 512,Q = Q15,则x = 0.015625

o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。

暂无文章

Fetch方法封装、业务实践

  说Fetch之前啊,我们不得不说一说Ajax了,以前使用最多的自然是jQuery封装的Ajax方法了,强大而且好用。   有人说了,jQuery的Ajax都已经封装得那么好了,你还整Fetch干什么,这不是多...

osc_8nnvoyb1
16分钟前
14
0
在 Visual Studio 市场中发布项目扩展

  比较不错的开源项目中,尤其是类似于AbpNext这种级别的项目,我们都想要快速的尝试,如何提供快速给开发者提供模板是我们的一大难题。不过在VisualStudio中并没有这么难。 一.本地发布插...

osc_1wo6kipk
17分钟前
7
0
5000+字硬核干货!Redis 分布式集群部署实战

原理: Redis集群采用一致性哈希槽的方式将集群中每个主节点都分配一定的哈希槽,对写入的数据进行哈希后分配到某个主节点进行存储。 集群使用公式(CRC16 key)& 16384计算键key数据那个槽。...

osc_2jegjdnw
19分钟前
12
0
Jmeter(十四) - 从入门到精通 - JMeter定时器 - 下篇(详解教程)

1.简介   用户实际操作时,并非是连续点击,而是存在很多停顿的情况,例如:用户需要时间阅读文字内容、填表、或者查找正确的链接等。为了模拟用户实际情况,在性能测试中我们需要考虑思考...

osc_yy65eb2q
20分钟前
0
0
Redis 6.0 访问控制列表ACL说明

背景 在Redis6.0之前的版本中,登陆Redis Server只需要输入密码(前提配置了密码 requirepass )即可,不需要输入用户名,而且密码也是明文配置到配置文件中,安全性不高。并且应用连接也使用...

osc_zwv9uj8l
21分钟前
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部