How to convert 8 bytes to a double value
39 views (last 30 days)
Show older comments
Hi,
Matlab script takes values from an udp server. Server respond contains 8 bytes so it is needed to convert this 8 bytes to an double value in matlab script.
My script:
u = udp('127.0.0.1', 49012, 'LocalPort', 85);
fopen(u);
fprintf(u,"request");
data = fread(u); % reads 8 bytes
data = typecast(str2num(sprintf('%d%d%d%d%d%d%d%d',data(1),data(2),data(3),data(4),data(5),data(6),data(7),data(8))), 'double');
disp(data)
for example its received data is as follows:
147, 190, 144, 143, 145, 126, 68, 64
It is converted to double as
1.4719e+21
but orginal value is about to 41
Note: There is no problem in server. I tested it using C# and received correct results.
Note: Reading value as double was tried like as follows:
fread(u, size, 'double')
However, this method does not make any difference.
0 Comments
Accepted Answer
Bruno Luong
on 5 Nov 2020
>> typecast(uint8([147, 190, 144, 143, 145, 126, 68, 64]),'double')
ans =
40.9888
2 Comments
More Answers (0)
See Also
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!