[c#] Sprintf in C #?


Answers

EDIT: Ich gehe davon aus, dass Sie den Wert einer ganzen Zahl in ein Byte-Array konvertieren möchten und nicht zuerst in eine Zeichenfolge und dann in eine Byte-Anordnung (überprüfen Sie die Antwort von marc auf die letztere).

Um ein int in ein Byte-Array zu konvertieren, können Sie Folgendes verwenden:

byte[] array = BitConverter.GetBytes(17);

aber das gibt Ihnen ein Array von 4 Bytes und nicht 2 (da ein Int 32 Bits ist.) Um ein Array von 2 Bytes zu erhalten, sollten Sie verwenden:

byte[] array = BitConverter.GetBytes((short)17);

Wenn Sie den Wert 17 nur in zwei Zeichen konvertieren möchten, verwenden Sie Folgendes:

string result = string.Format("{0:00}", 17);

Aber wie marc darauf hinwies, verbraucht das Ergebnis 4 Bytes, da jedes Zeichen in .NET 2 Bytes (UTF-16) ist (einschließlich der zwei Bytes, die die Zeichenkettenlänge halten, sind es 6 Bytes).

Question

Gibt es etwas Ähnliches wie sprintf() in C #?

Ich würde zum Beispiel gerne eine ganze Zahl in ein 2-Byte-Byte-Array konvertieren.

Etwas wie:

int number = 17;
byte[] s = sprintf("%2c", number);



Links