博客首页 | 排行榜 |

csxcs366的博客--LABVIEW CVI

http://labview.weebly.com/ 群:80754347 群:78561268 群:37591940

个人档案
博文分类
labview编程技巧---定点数转换  2008-11-25 18:21

 如何辨别2字节的16位数的正负?

接收到一串PCM数据,如下:
0000 1264 C97C 8937 77C8 3783 EE9B 0000

说明两个字节对应一个点的数据(高低位互换后,如:1264(存储时的样子),实际数值为:6412(16进制),他们对应的10进制浮点数如下:
0  0.781831482452  0.9749279121932  0.4338837391869  -0.4338837390251  -0.9749279121533  -0.781831482564  -1.79586368671E-10

问题:

例如:    C877 (16进制)   =  -0.4338837390251 (10进制)    如何计算?如何判断这是个负数?


如何判断一个16进制数是正,还是负?(下面是16进制数和对应的10进制数)

0000    6412                         7CC9                          3789      
0          0.781831482452      0.9749279121932      0.4338837391869        
***************************************************************************************
C877                          8337                             9BEE                             0000
-0.4338837390251   -0.9749279121533       -0.781831482564         -1.79586368671E-10


如何只知道一个2字节的16进制数,判断出这是个的正负?(知道它对应的带符号的浮点数?如:
知道" C877  (16进制) ",如何判断出这是个的正负?得到 "   -0.4338837390251   "?

****************************************************************************************************************************************

分析:
IEEE标准规定,双精度浮点数为8个字节,单精度浮点数是4个字节,所以两个字节长度肯定不是浮点数,LABVIEW中的浮点数数据类型是完全符合IEEE标准的。上述问题实际是定点数而不是浮点数。

定点数小数点的位置和位数可以通过对话框配置,针对上述问题,配置如下:






类别:labview编程技巧 |
上一篇:黑色幽默---划时代的伟大创新 | 下一篇:黑色幽默----从"禁操办" 谈起
以下网友评论只代表其个人观点,不代表本网站的观点或立场