liest Byte-Array aus C #, das aus Java geschrieben ist

8

Ich versuche einen Integer aus C # zu schreiben und lese ihn aus Java. Eine Ganzzahl ist 4 Byte in beiden Sprachen. Wenn ich es jedoch aus C # schreibe, wird Integer 1 in die folgenden Bytes geschrieben 1000. Das erste Byte ist 1 und der Rest ist 0.

Aber in Java wird das Gleiche als 0001 geschrieben. Die ersten 3 Bytes sind 0 und die letzte ist 1.

Gibt es eine einfache Möglichkeit, zwischen diesen Sprachen zu lesen und zu schreiben, anstatt jedes vierte Byte manuell umzukehren? Der Code für Java

%Vor%

Der Code für C #

%Vor%     
Fuad Malikov 10.05.2011, 14:56
quelle

2 Antworten

2

Wie dieser Beitrag Punkte aus Ссылка C # unterstützt Binary nur wenig endian so muss man es auf der Java-Website mit der Bestellmethode konfigurieren Ссылка

    
schlingel 10.05.2011, 15:07
quelle
5

Sie können die Endianheit auf einer der Seiten wechseln, um sie kompatibel zu machen.

Zum Beispiel auf der Java-Seite können Sie festlegen, dass ByteOrder.LITTLE_ENDIAN (Standard ist BIG_ENDIAN)

verwendet wird

In Ihrem Fall können Sie ByteBuffer.order () , um die Reihenfolge festzulegen.

%Vor%

Oder Sie können wählen, ob Sie es auf C # -Seite ändern möchten. In diesem Fall müssen Sie Big-Endian so konfigurieren, dass es mit Java kompatibel ist.

    
Bala R 10.05.2011 15:07
quelle

Tags und Links