Q15格式表示负小数

1.用Q15、16-bit格式,表示出-0.5?

解析:其实很简单,Q15是dsp里为了优化浮点的,就是将小数* 2^15。

例如:0.333 * 32768 = 10911.744  取整数就是10911,转化为16进制就是 0x2A9F。

    先转化为整数0.5 * 32768 = 16384      0100 0000 0000 0000

                                        0011 1111 1111 1111

   负数的二进制是正数的补码       0100 0000 0000 0000

    加上符号位1,最终结果就是            1100 0000 0000 0000    换算成16进制就是0xC000。

再比如-0.00044,

第一步: +0.00044  转换为二进制是0.0000 0000 0001 110。

第二步:判定+0.00044在16位寄存器中的二进制形式,不算符号位,应该是只用15位来表示小数,就是 0000 0000 0000 1110, 最左边的0是符号位。

第三步: 求补码得到: 1111 1111 1111 0010

这样,-0.00044在内存中的表示就应该是 0xFFF2 。

如有错误,请指出。

时间: 2024-08-30 09:30:22

Q15格式表示负小数的相关文章

入门cout输出的格式(补位和小数精度)

http://blog.csdn.net/gentle_guan/article/details/52071415 mark一下,妈妈再也不用担心我高精度不会补位了

DSP数据运算基础

转载自:http://bbs.21ic.com/icview-841266-1-1.html 在应用DSP时,其实硬件一般都问题不大,主要的是软件,是算法!下面的关于DSP运算的精华但愿有些价值! 一 DSP定点算数运算 1 数的定标 在定点DSP芯片中,采用定点数进行数值运算,其操作数一般采用整型数来表示.一个整型数的最大表示范围取决于DSP芯片所给定的字长,一般为16位或24位.显然,字长越长,所能表示的数的范围越大,精度也越高.如无特别说明,本书均以16位字长为例. DSP芯片的数以2的补

CString中Format函数与格式输入与输出

CString中Format函数与格式输入与输出 Format是一个很常用,却又似乎很烦的方法,以下是它的完整概貌,以供大家查询之用: 格式化字符串forma("%d",12)意思是将一个整形的格式化的字符(我认为是保持其形状不变) 1).格式说明总是以%字符开始,以下是不同类型数据的格式方式%号后的说明: d输出带符号十进制数 o输出无符号八进制数 x输出无符号十六进制数 u输出无符号数 c输出单个字符 s输出一串字符 f输出实数(6位小数) e以指数形式输出实数 g选用f与e格式中

Java float保留两位小数或多位小数

转自:Java float保留两位小数或多位小数 方法1:用Math.round计算,这里返回的数字格式的. float price=89.89; int itemNum=3; float totalPrice=price*itemNum; float num=(float)(Math.round(totalPrice*100)/100);//如果要求精确4位就*10000然后/10000 方法2:用DecimalFormat 返回的是String格式的.该类对十进制进行全面的封装.像%号,千分

验证整数、小数、实数、有效位小数最简单JavaScript正则表达式

输入完按回车后即可验证!(自认为最简单!) 正整数: 负整数: 整 数: 正小数: 负小数: 小 数: 实 数: 保留1位小数: 保留2位小数: 保留3位小数: 说明:IE6.0.IE7.0.IE8.0.Firefox/3.0.11下测试通过 作者原创!转载请说明出处:http://blog.csdn.net/xxd851116 [测试源码]: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "

[Java基础] Java float保留两位小数或多位小数

方法1:用Math.round计算,这里返回的数字格式的. float price=89.89; int itemNum=3; float totalPrice=price*itemNum; float num=(float)(Math.round(totalPrice*100)/100);//如果要求精确4位就*10000然后/10000 方法2:用DecimalFormat 返回的是String格式的.该类对十进制进行全面的封装.像%号,千分位,小数精度.科学计算. float price=

Java导出防止小数显示不全工具类

1.说明 在做项目的过程中,发现导出功能中的数据显示不全,如"0.4",会显示成".4":"-0.8"会显示成"-.8" 现在,通过以下Java工具类保证导出的数据(特别是小数)显示全 2.Java工具类 /** * @Title:DecimalPoint.java * @Package:com.you.model * @Description:解决导出时小数前的"0"被去掉的问题 * @Author: 游

python一个判断是否是小数的程序

#1\判断小数#1.92#-1.988 def is_float(s): ''' 这个函数是用来判断传入的是否为小数,包括正小数和负小数三 :param s :传入一个字符串 :return: True or False ''' s = str(s) if s.isdigit(): return False else: if s.count('.') ==1: #判断小数点个数 sl = s.split('.') #分割字符串 left =sl[0] #小数点前面的 right = sl[1]

String转换成float并且保留两位小数,购物车计算价格

方法1: 用DecimalFormat 返回的是String格式的.该类对十进制进行全面的封装.像%号,千分位,小数精度.科学计算. float perPrice=Float.parseFloat(textView_price_shopCar.getText().toString()) * count;//String类型转换成float类型 DecimalFormat decimalFormat=new DecimalFormat(".00");//构造方法的字符格式这里如果小数不足