Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original
Dieser Artikel wurde noch nicht bewertet - Dieses Thema bewerten.

BigInteger.ToByteArray-Methode

Konvertiert einen BigInteger-Wert in ein Bytearray.

Namespace:  System.Numerics
Assembly:  System.Numerics (in System.Numerics.dll)
public byte[] ToByteArray()

Rückgabewert

Typ: System.Byte[]
Der Wert des aktuellen, in ein Bytearray konvertierten BigInteger-Objekts.

Die einzelnen Bytes im von dieser Methode zurückgegebenen Array werden in Little-Endian-Reihenfolge angezeigt. Das heißt, die niederwertigen Bytes des Werts gehen den höherwertigen Bytes voraus. Das erste Byte des Arrays stellt die ersten acht Bits des BigInteger-Werts, das zweite Byte die nächsten acht Bits dar usw. Der Wert 1024 oder 0x0400 wird z. B. als folgendes Array von zwei Bytes gespeichert:

Element

Bytewert.

0

0x00

1

0x04

Negative Werte werden in der kompaktesten möglichen Zweierkomplementdarstellung in das Array geschrieben. -1 wird z. B. als einzelnes Byte mit dem Wert 0xFF anstelle eines Arrays mit mehreren Elementen wie 0xFF, 0xFF oder 0xFF, 0xFF, 0xFF, 0xFF.

Da die Zweierkomplementdarstellung immer das höchstwertige Bit des letzten Bytes im Array (das Byte an Position Array.Length- 1) als Vorzeichenbit interpretiert, gibt die Methode ein Bytearray mit einem zusätzlichen Element zurück, dessen Wert 0 (null) ist, um positive Werte eindeutig voneinander zu unterscheiden, die andernfalls mit festgelegtem Vorzeichenbit interpretiert werden können. Der Wert 120 oder 0x78 wird z. B. als Einzelbytearray dargestellt: 0x78. 128 oder 0x80 werden jedoch als 2-Byte-Array dargestellt: 0x80, 0x00.

Sie können einen Roundtrip eines BigInteger-Werts ausführen, indem Sie es in einem Bytearray speichern und es dann mit dem BigInteger(Byte[])-Konstruktor wiederherstellen.

WarnhinweisVorsicht

Wenn im Code der Wert einzelner Bytes im Array, das von dieser Methode zurückgegeben wurde, geändert wird, bevor der Wert wiederhergestellt wird, müssen Sie sicherstellen, dass Sie das Vorzeichenbit nicht unabsichtlich ändern. Zum Beispiel wenn die Änderungen einen positiven Wert vergrößern, damit das höchstwertige Bit im letzten Element des Bytearrays festgelegt wird, können Sie am Ende des Arrays ein neues Byte hinzufügen, dessen Wert 0 (null) ist.

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


.NET Framework

Unterstützt in: 4.5, 4

.NET Framework Client Profile

Unterstützt in: 4

Portable Klassenbibliothek

Unterstützt in: Portable Klassenbibliothek

.NET für Windows Store-Apps

Unterstützt in: Windows 8

Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core-Rolle wird nicht unterstützt), Windows Server 2008 R2 (Server Core-Rolle wird mit SP1 oder höher unterstützt; Itanium wird nicht unterstützt)

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.
Fanden Sie dies hilfreich?
(1500 verbleibende Zeichen)

Community-Beiträge

HINZUFÜGEN
© 2013 Microsoft. Alle Rechte vorbehalten.