How to translate 32-bit number to float number
    조회 수: 6 (최근 30일)
  
       이전 댓글 표시
    
The acquired data is expressed as '6D61803F', this may be a little-endian. I translated it to '3F80616D', then I got the float number 1.002973, this was the real data!
Now I used
q = quantizer(q);
hex2num(q, '6D61803F') or hex2num(q, '3F80616D')
Both of those did not get the real one!
What's the problem?
Thanks
댓글 수: 3
채택된 답변
  Walter Roberson
      
      
 2016년 7월 29일
        >> q = quantizer; q.quantize(1.002973)
Warning: 1 overflow(s) occurred in the fi quantize operation. 
> In embedded.quantizer/quantize (line 77) 
ans =
         0.999969482421875
You are exceeding the range of the quantizer.
>> q.numeric2hex(1.002973)
ans =
7fff
You are providing more hex digits than fit into the quantizer.
A [16 15] quantizer is a total of 16 bits long.
I would suggest that you need
q = quantizer('mode', 'single');
hex2num(q, '3F80616D')
 ans =
          1.00297319889069
댓글 수: 0
추가 답변 (0개)
참고 항목
카테고리
				Help Center 및 File Exchange에서 Cast and Quantize Data에 대해 자세히 알아보기
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

