定点数的几个知识点

数的定标

概念

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

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

  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值