Konwersja liczby signed long

0

Witam,

Odbieram ramkę od urządzenia i urządzenie wysyła mi dane w postaci 4 bajtowej liczby Signed long. Nie wiem w czym jest napisany soft w urządzeniu. Chciałbym przekonwertować tą liczbę na przykład na float. Nie wiem jak za bardzo jak to zrobić.

1

Ale masz w kodzie 4 bajty czy juz masz tego ulonga?

0

Przychodzi ramka i są te wszystkie bajty w tej ramce, mam zadeklarowaną tablicę 4 bajtową i mogę je tam umieścić. Teraz potrzeba mi przekonwertować to na jakąś taką liczbę aby byłą widać w programie, na przykład na ekranie.

1

https://stackoverflow.com/questions/5283180/how-can-i-convert-bitarray-to-single-int - musisz wędzić jaki to Indianin jest bo może być konieczne obrócenie.

0

Odpowiedz z chatGPT 3.5 na twoje pytanie o konwersję z signed long na float. Dodatkowo pamiętaj o endianess tak jak ktoś wyżej wspomniał:

No problem! In C#, you can convert a signed long variable to a float using explicit casting as well. Here's how you can do it:

long signedLongValue = 123456789L; // Example signed long value
float floatValue = (float)signedLongValue; // Casting the signed long value to a float
Console.WriteLine("Float value: " + floatValue);

This code will output the float representation of the signed long value.

Jeżeli to nie jest odpowiedź, to proszę precyzyjne sformułowanie problemu.

1
byte[] myBytes = { 32, 56, 99, 87 };
var data = BitConverter.ToUInt32(myBytes, 0);
0

Tak w zasadzie to dowiedziałem się że ta liczba jest w formacie little endian.

1

Czyli najnormalniejszy int w C#. W czym problem?

1

Albo BitConverter jak @abrakadaber sugerował, albo BinaryPrimitives - nowszy sposób i wprost mówisz czy interpretujesz bajty jako big czy little endian.
BinaryPrimitives.ReadInt64LittleEndian(bytes)

0

Daj jakiś przykład co dostajesz, a jaka wartość interesuje Cię na wyjściu. Może w dokumentacji urządzenia jest opis reprezentacji danej.

0

Udało mi się na razie to działa co pokazano, tylko że nie te bajty z ramki brałem.

1 użytkowników online, w tym zalogowanych: 0, gości: 1