How to convert 8 bytes to a double value
22 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
Categories
Find more on Installation in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!