www.gusucode.com > gps卫星位置预报,MATLAB编写,有动画界面源码程序 > code5/gps_final_new/ProcessDouble.m
function DoubleData=ProcessDouble(data) mantissa=0; temp=bitshift(bitand(data(8),128),-7); if temp~=0 sign_double=-1; else sign_double=1; end two_exp=bitand(data(8),127)*16+bitshift(bitand(data(7),240),-4); for i=1:4 temp=-i*bitshift(bitand(data(7),2^(4-i)),i-4); if temp~=0 mantissa=mantissa+2^temp; end end for m=1:6 for i=1:8 temp=(4-8*m-i)*bitshift(bitand(data(6+1-m),2^(8-i)),i-8); if temp~=0 mantissa=mantissa+2^temp; end end end DoubleData=sign_double*(1+mantissa)*2^(two_exp-1023);