Effacer les filtres
Effacer les filtres

How to convert 8 bytes to a double value

53 vues (au cours des 30 derniers jours)
John Smith
John Smith le 5 Nov 2020
Commenté : Yelile Iga le 9 Oct 2022
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.

Réponse acceptée

Bruno Luong
Bruno Luong le 5 Nov 2020
>> typecast(uint8([147, 190, 144, 143, 145, 126, 68, 64]),'double')
ans =
40.9888
  2 commentaires
John Smith
John Smith le 5 Nov 2020
thank you
Yelile Iga
Yelile Iga le 9 Oct 2022
we have the same poblem, can you help us?

Connectez-vous pour commenter.

Plus de réponses (0)

Produits

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by