Konvertiere Byte-Array in int

8

Ich versuche, eine Umwandlung in C # zu machen, und ich bin nicht sicher, wie man das macht:

%Vor%

Könnte mir jemand ein paar Ideen geben?

    
olidev 29.05.2011, 00:15
quelle

4 Antworten

23

BitConverter ist der richtige Ansatz.

Ihr Problem besteht darin, dass Sie nur 8 Bit zur Verfügung gestellt haben, wenn Sie 32 versprochen haben. Versuchen Sie stattdessen eine gültige 32-Bit-Zahl im Array, z. B. new byte[] { 0x32, 0, 0, 0 } .

Wenn Sie ein Array mit beliebiger Länge konvertieren möchten, können Sie dies selbst implementieren:

%Vor%

Es ist nicht klar, was der zweite Teil Ihrer Frage (mit Strings) produzieren soll, aber ich glaube, Sie wollen hexadezimale Ziffern? BitConverter kann auch dabei helfen, wie in eine frühere Frage beschrieben.

    
Ben Voigt 29.05.2011, 00:17
quelle
1
  1. das ist richtig, aber du bist es fehlt, dass Convert.ToInt32 will 32 Bit (32/8 = 4 Bytes) von Informationen, um eine Umwandlung zu machen, Sie können also nicht nur ein Byte konvertieren: 'neues Byte [] {0x32}

  2. absolut das gleiche Problem du hast. und vergiss nicht die Kodierung, die Sie verwenden: Von Kodierung zu Kodierung haben Sie 'unterschiedliche Anzahl von Bytes pro Symbol'

Mikant 29.05.2011 00:23
quelle
1
%Vor%     
Barak Rosenfeld 29.06.2015 12:02
quelle
0

Eine schnelle und einfache Möglichkeit, dies zu tun, besteht darin, die Bytes mit Buffer.BlockCopy in eine ganze Zahl zu kopieren:

%Vor%

Dies hat den zusätzlichen Vorteil, dass man viele ganze Zahlen in ein Array parsen kann, indem man Offsets manipuliert.

    
JGU 28.12.2013 19:15
quelle

Tags und Links