Umwandlung von LittleEndian auf BigEndian

muehlbacher

Grünschnabel
Ich bekommen ein Array vom Datentyp (byte) die ich in lauter float-Werte umwandeln. 4 Felder des Byte-Arrray werden zu einer float-Variable zusammengefasst. In .NET kann ich die Umwandlung(byte auf float) mit dem BitConverter.ToSingle() erledigen. Bei dieser Umwandlung wird jedoch LittleEndian verwendet. Meine Daten liegen aber in der Form BigEndian vor.

Kann man das verwendete Format umstellen(Little auf BigEndian) weil ansonsten müsste ich mein gesammtes Array vollkommen neu sortieren, was durch die große Datenmenge zu einem Problem werden kann.


Gruß,
Markus
 
Vorschlag: Bilde von jedem Byte-Wert das Komplement.

Beispiel:

Code:
byte bytTest1 = 170;                     //170 =10101010
byte bytTest2 = (byte)~bytTest1;   //85 =  01010101

Die explizite Konvertierung zu byte deswegen, weil ein Komplement für byte nicht definiert ist und der Wert wärend der Komplementbildung zu einem int konvertiert wird.

Damit hast du die Werte bitweise umgedreht, das müsste dann ja der Umwandlung Big -> Little Endian und umgekehrt auf Byte-Ebene entsprechen.
 

Neue Beiträge

Zurück