Simulation von C # Überlauf in NodeJS

9

Ich versuche C # -Code in nodejs zu übersetzen und ich habe eine Wand getroffen. Eine der Funktionen in C # verwendet ein Byte zum Generieren von 3 Zahlen mit BitConverter.toInt64 wie folgt:

%Vor%

Als Beispiel, wenn ich das Array verwende:

%Vor%

Dann sind die Werte für Start, Mitte und Ende:

%Vor%

Aber mit NodeJS mit dem Biguinut-Format bekomme ich folgende Zahlen (Code unten):

%Vor%

mit dem folgenden NodeJS

%Vor%

Ich verstehe, dass die Zahlen für C # aufgrund eines Überlaufs negativ werden, das Problem ist jedoch, dass der Überlauf vor dem Maximum zu liegen scheint, das von int64 gespeichert werden kann.

Gibt es überhaupt für mich herauszufinden, um welche Nummer es sich handelt oder wie ich den C # -Code nachahmen kann?

    
I-Am-Not-Legend 05.08.2016, 16:55
quelle

1 Antwort

4

Wenn Sie anstelle eines Puffers einen String verwenden und die Bisse aufteilen, so dass Sie ein Array mit 16 Ziffern anstelle von 8 Hexwerten haben, weiß ich nicht, ob dies einen Unterschied macht oder ob es falsch konvertiert wird

%Vor%

Sie erhalten möglicherweise immer noch eine Benutzerkennung, die Sie anschließend in ein signed int konvertieren müssen

Als @argaz erwähnt BitConverter ist in der Regel Little Endian, also die Notwendigkeit für die LE-Flag.

    
johnny 5 05.08.2016, 19:17
quelle

Tags und Links