Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

BigInteger.ToByteArray-Methode: ()

.NET Framework (current version)
 

Veröffentlicht: Oktober 2016

Konvertiert einen BigInteger Wert in ein Bytearray.

Namespace:   System.Numerics
Assembly:  System.Numerics (in System.Numerics.dll)

public byte[] ToByteArray()

Rückgabewert

Type: System.Byte[]

Der Wert des aktuellen BigInteger Objekt in ein Bytearray konvertiert.

Die einzelnen Bytes in das von dieser Methode zurückgegebene Array werden in little-Endian-Reihenfolge angezeigt. Die niederwertigen Bytes des Werts vorausgehen, also die höherwertigen Bytes. Das erste Byte des Arrays stellt die ersten acht Bits von der BigInteger -Wert, das zweite Byte widerspiegelt, die nächsten acht Bits und So weiter. Beispielsweise wird der Wert 1024 oder 0 x 0400, wie das folgende Array von zwei Bytes gespeichert:

Element

Byte-Wert

0

0 x 00

1

0 x 04

Negative Werte werden in das Array mit zwei der Ergänzung Darstellung in die kompakteste Form möglichen geschrieben. Z. B.-1 wird als ein Byte, dessen Wert 0xFF statt eines Arrays mit mehreren Elementen, wie z. B. 0xFF, 0xFF oder 0xFF, 0xFF, 0xFF, 0xFF.

Da immer Darstellung Zweierkomplement interpretiert das höchstwertige Bit des letzten Bytes im Array (das Byte an Position Array.Length- 1) als Vorzeichenbit, gibt die Methode ein Bytearray mit einem zusätzlichen Element, dessen Wert 0 (null), um positiven Werten zu unterscheiden, die andernfalls interpretiert werden konnte, als hätten Sie ihre Anmelde-Bits festgelegt ist. Z. B. den Wert 120 oder 0x78 wird als Single-Byte-Array dargestellt: 0x78. Jedoch 128 oder 0x80, wird als zwei-Byte-Array dargestellt: 0x80, 0x00.

Sie können einen Roundtrip eine BigInteger Wert, indem Sie es in ein Byte-Array speichern und Wiederherstellen mit der BigInteger(Byte[]) Konstruktor.

System_CAPS_cautionAchtung

 Wenn Ihr Code den Wert einzelner Bytes im Array von dieser Methode zurückgegeben wird ändert, bevor sie den Wert wiederhergestellt wird, müssen Sie sicherstellen, dass Sie das Vorzeichenbit nicht unabsichtlich ändern. Werden z. B. wenn die Änderungen einen positiven Wert erhöhen, damit im letzten Element des Bytearrays das höchstwertige bit festgelegt ist, wird Sie einen neuen Byte hinzufügen können, deren Wert 0 (null) bis zum Ende des Arrays entspricht.

Im folgenden Beispiel wird veranschaulicht, wie bestimmte BigInteger -Werte in Bytearrays dargestellt werden.

using System;
using System.Numerics;

public class Example
{
   static byte[] bytes;

   public static void Main()
   {
      BigInteger[] numbers = { BigInteger.MinusOne, BigInteger.One, 
                               BigInteger.Zero, 120, 128, 255, 1024, 
                               Int64.MinValue, Int64.MaxValue, 
                               BigInteger.Parse("90123123981293054321") };
      foreach (BigInteger number in numbers)
      {
         bytes = number.ToByteArray();
         Console.Write("{0} ({1}) -> ", number, number.ToString(GetSpecifier()));
         Console.Write("{0} bytes: ", bytes.Length);
         foreach (byte byteValue in bytes)
            Console.Write("{0:X2} ", byteValue);

         Console.WriteLine();
      }   
   }

   private static string GetSpecifier()
   {
      return "X" + (bytes.Length * 2).ToString();
   }
}
// The example displays the following output:
//    -1 (FF) -> 1 bytes: FF
//    1 (01) -> 1 bytes: 01
//    0 (00) -> 1 bytes: 00
//    120 (78) -> 1 bytes: 78
//    128 (0080) -> 2 bytes: 80 00
//    255 (00FF) -> 2 bytes: FF 00
//    1024 (0400) -> 2 bytes: 00 04
//    -9223372036854775808 (8000000000000000) -> 8 bytes: 00 00 00 00 00 00 00 80
//    9223372036854775807 (7FFFFFFFFFFFFFFF) -> 8 bytes: FF FF FF FF FF FF FF 7F
//    90123123981293054321 (04E2B5A7C4A975E971) -> 9 bytes: 71 E9 75 A9 C4 A7 B5 E2 04

Universelle Windows-Plattform
Verfügbar seit 8
.NET Framework
Verfügbar seit 4.0
Portierbare Klassenbibliothek
Unterstützt in: portierbare .NET-Plattformen
Silverlight
Verfügbar seit 4.0
Windows Phone
Verfügbar seit 8.1
Zurück zum Anfang
Anzeigen: