(0) exportieren Drucken
Alle erweitern
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

BitConverter-Klasse

Konvertiert Basisdatentypen in ein Bytearray und ein Bytearray in Basisdatentypen.

System.Object
  System.BitConverter

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

'Declaration
Public NotInheritable Class BitConverter

Der BitConverter-Typ macht die folgenden Member verfügbar.

  NameBeschreibung
Öffentliche MethodeStatischer MemberUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsDoubleToInt64BitsKonvertiert die angegebene Gleitkommazahl mit doppelter Genauigkeit in eine 64-Bit-Ganzzahl mit Vorzeichen.
Öffentliche MethodeStatischer MemberUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsGetBytes(Boolean)Gibt den angegebenen booleschen Wert als Bytearray zurück.
Öffentliche MethodeStatischer MemberUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsGetBytes(Char)Gibt den Wert des angegebenen Unicode-Zeichens als Bytearray zurück.
Öffentliche MethodeStatischer MemberUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsGetBytes(Double)Gibt den angegebenen Gleitkommawert mit doppelter Genauigkeit als Bytearray zurück.
Öffentliche MethodeStatischer MemberUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsGetBytes(Int16)Gibt den Wert der angegebenen 16-Bit-Ganzzahl mit Vorzeichen als Bytearray zurück.
Öffentliche MethodeStatischer MemberUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsGetBytes(Int32)Gibt den Wert der angegebenen 32-Bit-Ganzzahl mit Vorzeichen als Bytearray zurück.
Öffentliche MethodeStatischer MemberUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsGetBytes(Int64)Gibt den Wert der angegebenen 64-Bit-Ganzzahl mit Vorzeichen als Bytearray zurück.
Öffentliche MethodeStatischer MemberUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsGetBytes(Single)Gibt den angegebenen Gleitkommawert mit einfacher Genauigkeit als Bytearray zurück.
Öffentliche MethodeStatischer MemberUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsGetBytes(UInt16)Gibt den Wert der angegebenen vorzeichenlosen 16-Bit-Ganzzahl als Bytearray zurück.
Öffentliche MethodeStatischer MemberUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsGetBytes(UInt32)Gibt den Wert der angegebenen vorzeichenlosen 32-Bit-Ganzzahl als Bytearray zurück.
Öffentliche MethodeStatischer MemberUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsGetBytes(UInt64)Gibt den Wert der angegebenen vorzeichenlosen 64-Bit-Ganzzahl als Bytearray zurück.
Öffentliche MethodeStatischer MemberUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsInt64BitsToDoubleKonvertiert die angegebene 64-Bit-Ganzzahl mit Vorzeichen in eine Gleitkommazahl mit doppelter Genauigkeit.
Öffentliche MethodeStatischer MemberUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsToBooleanGibt einen booleschen Wert zurück, der aus einem Byte an der angegebenen Position eines Bytearrays konvertiert wurde.
Öffentliche MethodeStatischer MemberUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsToCharGibt ein Unicode-Zeichen zurück, das aus zwei Bytes an der angegebenen Position in einem Bytearray konvertiert wurde.
Öffentliche MethodeStatischer MemberUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsToDoubleGibt eine Gleitkommazahl mit doppelter Genauigkeit zurück, die aus acht Bytes an der angegebenen Position in einem Bytearray konvertiert wurde.
Öffentliche MethodeStatischer MemberUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsToInt16Gibt eine 16-Bit-Ganzzahl mit Vorzeichen zurück, die aus zwei Bytes an der angegebenen Position in einem Bytearray konvertiert wurde.
Öffentliche MethodeStatischer MemberUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsToInt32Gibt eine 32-Bit-Ganzzahl mit Vorzeichen zurück, die aus vier Bytes an der angegebenen Position in einem Bytearray konvertiert wurde.
Öffentliche MethodeStatischer MemberUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsToInt64Gibt eine 64-Bit-Ganzzahl mit Vorzeichen zurück, die aus acht Bytes an der angegebenen Position in einem Bytearray konvertiert wurde.
Öffentliche MethodeStatischer MemberUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsToSingleGibt eine Gleitkommazahl mit einfacher Genauigkeit zurück, die aus vier Bytes an der angegebenen Position in einem Bytearray konvertiert wurde.
Öffentliche MethodeStatischer MemberUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsToString(Byte())Konvertiert den numerischen Wert jedes Elements im angegebenen Bytearray in die entsprechende hexadezimale Zeichenfolgendarstellung.
Öffentliche MethodeStatischer MemberUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsToString(Byte(), Int32)Konvertiert den numerischen Wert jedes Elements in einem Teil des angegebenen Bytearrays in die entsprechende hexadezimale Zeichenfolgendarstellung.
Öffentliche MethodeStatischer MemberUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsToString(Byte(), Int32, Int32)Konvertiert den numerischen Wert jedes Elements in einem Teil des angegebenen Bytearrays in die entsprechende hexadezimale Zeichenfolgendarstellung.
Öffentliche MethodeStatischer MemberUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsToUInt16Gibt eine vorzeichenlose 16-Bit-Ganzzahl zurück, die aus zwei Bytes an der angegebenen Position in einem Bytearray konvertiert wurde.
Öffentliche MethodeStatischer MemberUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsToUInt32Gibt eine vorzeichenlose 32-Bit-Ganzzahl zurück, die aus vier Bytes an der angegebenen Position in einem Bytearray konvertiert wurde.
Öffentliche MethodeStatischer MemberUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsToUInt64Gibt eine vorzeichenlose 64-Bit-Ganzzahl zurück, die aus acht Bytes an der angegebenen Position in einem Bytearray konvertiert wurde.
Zum Seitenanfang

  NameBeschreibung
Öffentliches FeldStatischer MemberUnterstützt von XNA FrameworkUnterstützt von Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsIsLittleEndianGibt die Bytereihenfolge (Endian-Reihenfolge) an, in der Daten in dieser Computerarchitektur gespeichert werden.
Zum Seitenanfang

Die BitConverter-Klasse hilft, Werttypen in ihrer wesentlichen Form zu bearbeiten, als Reihe von Bytes. Ein Byte ist als vorzeichenlose 8-Bit-Ganzzahl definiert. Die BitConverter-Klasse schließt statische Methoden ein, um jeden der primitiven Typen in und aus einem Bytearray zu konvertieren, wie die folgende Tabelle veranschaulicht.

Wenn Sie einen Roundtrip der Daten mithilfe von BitConverter-Methoden ausführen, stellen Sie sicher, dass die GetBytes-Überladung und die ToType-Methode den gleichen Typ angeben. Wie im folgenden Beispiel veranschaulicht wird, kann ein Array wiederherzustellen, das durch Aufrufen der ToUInt32-Methode eine ganze Zahl mit Vorzeichen darstellt, zu einem Wert führen, der sich vom Original unterscheidet. Weitere Informationen finden Sie im Eintrag Working with Signed Non-Decimal and Bitwise Values im Blog des BCL-Teams.


Module Example
   Public Sub Main()
      Dim value As Integer = -16
      Dim bytes() As Byte = BitConverter.GetBytes(value) 

      ' Convert bytes back to Int32.
      Dim intValue As Integer = BitConverter.ToInt32(bytes, 0)
      Console.WriteLine("{0} = {1}: {2}", 
                        value, intValue, 
                        If(value.Equals(intValue), "Round-trips", "Does not round-trip"))
      ' Convert bytes to UInt32.
      Dim uintValue As UInteger = BitConverter.ToUInt32(bytes, 0)
      Console.WriteLine("{0} = {1}: {2}", value, uintValue, 
                        If(value.Equals(uintValue), "Round-trips", "Does not round-trip"))
   End Sub
End Module
' The example displays the following output:
'       -16 = -16: Round-trips
'       -16 = 4294967280: Does not round-trip


Die Reihenfolge von Bytes im von den GetBytes-Methodenüberladungen zurückgegebenen Array (sowie die Reihenfolge von Bits in der von der DoubleToInt64Bits-Methode zurückgegebenen ganzen Zahl und die Reihenfolge von Hexadezimalzeichenfolgen, die von der ToString(Byte())-Methode zurückgegeben wurden) hängt davon ab, ob die Computerarchitektur Little-Endian oder Big-Endian ist. Ebenso hängt die Reihenfolge der Bytes im Array sowie die Rückgabe der ToIntegerValue-Methode und der ToChar-Methode davon ab, ob die Computerarchitektur Little-Endian oder Big-Endian ist. Die Endian-Reihenfolge einer Architektur wird von der IsLittleEndian-Eigenschaft angegeben, die true für Little-Endian-Systeme und false für Big-Endian-Systeme zurückgibt. In Little-Endian-Systemen gehen niederwertige Bytes höherwertigen Bytes voraus. In Big-Endian-Systemen gehen höherwertige Bytes niederwertigen Bytes voraus. In der folgenden Tabelle wird der Unterschied in den Bytearrays veranschaulicht, die sich aus dem Übergeben der ganzen Zahl 1.234.567.890 (0x499602D2) an die GetBytes(Int32)-Methode ergibt. Die Bytes werden in der Reihenfolge vom Byte an Index 0 zum Byte an Index 3 aufgeführt.

Little-Endian

D2-02-96-49

Big-Endian

49-96-02-D2

Da der Rückgabewert einiger Methoden von Systemarchitektur abhängt, seien Sie vorsichtig, wenn Sie Bytedaten über Computergrenzen senden:

  • Wenn alle Systeme, die Daten senden und empfangen, garantiert die gleiche Endian-Reihenfolge haben, braucht nichts mit den Daten gemacht zu werden.

  • Wenn Systeme, die Daten senden und empfangen, unterschiedliche Endian-Reihenfolgen haben können, senden Sie Daten immer in einer bestimmten Reihenfolge. Dies bedeutet, dass die Reihenfolge von Bytes im Array möglicherweise entweder vor dem Senden oder nach dem Empfangen umgekehrt werden muss. Eine allgemeine Konvention ist, Daten in Netzwerk-Bytereihenfolge (Big-Endian-Reihenfolge) zu senden. Im folgenden Beispiel wird eine Implementierung zum Senden eines ganzzahligen Werts in Netzwerk-Bytereihenfolge bereitgestellt.

    
    Module Example
       Public Sub Main()
          Dim value As Integer = 12345678
          Dim bytes() As Byte = BitConverter.GetBytes(value)
          Console.WriteLine(BitConverter.ToString(bytes))
    
          If BitConverter.IsLittleEndian Then
             Array.Reverse(bytes) 
          End If
          Console.WriteLine(BitConverter.ToString(bytes))
          ' Call method to send byte stream across machine boundaries.
    
          ' Receive byte stream from beyond machine boundaries.
          Console.WriteLine(BitConverter.ToString(bytes))
          If BitConverter.IsLittleEndian Then     
             Array.Reverse(bytes)
          End If   
          Console.WriteLine(BitConverter.ToString(bytes))
          Dim result As Integer = BitConverter.ToInt32(bytes, 0)
          Console.WriteLine("Original value: {0}", value)
          Console.WriteLine("Returned value: {0}", result)
       End Sub
    End Module
    ' The example displays the following output on a little-endian system:
    '       4E-61-BC-00
    '       00-BC-61-4E
    '       00-BC-61-4E
    '       4E-61-BC-00
    '       Original value: 12345678
    '       Returned value: 12345678
    
    
    
  • Wenn Systeme, die Daten senden und empfangen, unterschiedliche Endian-Reihenfolgen aufweisen können und die zu sendenden Daten aus ganzen Zahlen mit Vorzeichen bestehen, rufen Sie die IPAddress.HostToNetworkOrder-Methode auf, um die Daten in Netzwerk-Bytereihenfolge zu konvertieren, und die IPAddress.NetworkToHostOrder-Methode, um sie in die vom Empfänger geforderte Reihenfolge zu konvertieren.

Im folgenden Codebeispiel wird die Verwendung mehrerer Methoden der BitConverter-Klasse veranschaulicht.


' Example of BitConverter class methods.
Module BitConverterDemo

    Sub Main( )

        Const formatter As String = "{0,25}{1,30}"

        Dim aDoubl      As Double   = 0.1111111111111111111
        Dim aSingl      As Single   = 0.1111111111111111111
        Dim aLong       As Long     = 1111111111111111111
        Dim anInt       As Integer  = 1111111111
        Dim aShort      As Short    = 11111
        Dim aChar       As Char     = "*"c
        Dim aBool       As Boolean  = True

        Console.WriteLine( _
            "This example of methods of the BitConverter class" & _
            vbCrLf & "generates the following output." & vbCrLf )
        Console.WriteLine( formatter, "argument", "Byte array" )
        Console.WriteLine( formatter, "--------", "----------" )

        ' Convert values to Byte arrays and display them.
        Console.WriteLine( formatter, aDoubl, _
            BitConverter.ToString( BitConverter.GetBytes( aDoubl ) ) )
        Console.WriteLine( formatter, aSingl, _
            BitConverter.ToString( BitConverter.GetBytes( aSingl ) ) )
        Console.WriteLine( formatter, aLong, _
            BitConverter.ToString( BitConverter.GetBytes( aLong ) ) )
        Console.WriteLine( formatter, anInt, _
            BitConverter.ToString( BitConverter.GetBytes( anInt ) ) )
        Console.WriteLine( formatter, aShort, _
            BitConverter.ToString( BitConverter.GetBytes( aShort ) ) )
        Console.WriteLine( formatter, aChar, _
            BitConverter.ToString( BitConverter.GetBytes( aChar ) ) )
        Console.WriteLine( formatter, aBool, _
            BitConverter.ToString( BitConverter.GetBytes( aBool ) ) )
    End Sub
End Module

' This example of methods of the BitConverter class
' generates the following output.
' 
'                  argument                    Byte array
'                  --------                    ----------
'         0.111111111111111       1C-C7-71-1C-C7-71-BC-3F
'                 0.1111111                   39-8E-E3-3D
'       1111111111111111111       C7-71-C4-2B-AB-75-6B-0F
'                1111111111                   C7-35-3A-42
'                     11111                         67-2B
'                         *                         2A-00
'                      True                            01


.NET Framework

Unterstützt in: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

Portable Klassenbibliothek

Unterstützt in: Portable Klassenbibliothek

.NET für Windows Store-Apps

Unterstützt in: Windows 8

.NET für Windows Phone-Apps

Unterstützt in: Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, 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.

Alle öffentlichen static (Shared in Visual Basic)-Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2014 Microsoft