|
现在程序需要将一个数值转换为32位浮点算法的16进制数据!比如一个数z,转换为浮点的方法为z=(-+)1*2**(x-127)*1.(y),其中**代表指数。需要的就是-+,x,y的值转换为32位的2进制!举例说明吧!将11.922转换为32位的浮点数:
11.922=+1*2**(3)*1.49025=+1*2**(130-127)*1.(49025)其中需要的就是+1,130,0.49025这3个数值转换为32位2进制,32位2进制数分成3组:0,12345678,123456789……23。0代表数值的正负(二进制0为+,1为-),12345678代表130的二进制位10000010,123456789……23代表23位二进制,首位为2**(-1),接着2**(-2),2**(-3),……2**(-23),23位数相加得到最接近0.49025的小数,即:0111,1101,1000,0001,0000,011 =0.4902499914
11.922转换为32位浮点数就是
11.922=8*1.49025=2**(3)*1.49025=2**(130-127)*1.(49025)=0,10000010,0111,1101,1000,0001,0000,011=413EC083(hex)
再如-0.0046
-0.0046=2(-8)*1.1776=2**(119-127)*1.(1776)='1,01110111,0010,1101,0111,0111,0000,000=BB96BB80(hex)
现在想用labview实现这样的运算将11.922转换为0,10000010,0111,1101,1000,0001,0000,011再转换为16进制413EC083!想好久都不知道如何下手!不知道labview能否实现哪?
看到labview数值函数里有个按2的幂缩放这个函数,不知有没有反过来的运算?
[ 本帖最后由 zx1221 于 2007-3-21 11:51 编辑 ] |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|