BitConverter.ToInt32 Methode

Definitie

Overloads

Name Description
ToInt32(Byte[], Int32)

Retourneert een 32-bits geheel getal dat is geconverteerd van vier bytes op een opgegeven positie in een bytematrix.

ToInt32(ReadOnlySpan<Byte>)

Converteert een bytespanne met het kenmerk Alleen-lezen naar een 32-bits geheel getal dat is ondertekend.

ToInt32(Byte[], Int32)

Retourneert een 32-bits geheel getal dat is geconverteerd van vier bytes op een opgegeven positie in een bytematrix.

public:
 static int ToInt32(cli::array <System::Byte> ^ value, int startIndex);
public static int ToInt32(byte[] value, int startIndex);
static member ToInt32 : byte[] * int -> int
Public Shared Function ToInt32 (value As Byte(), startIndex As Integer) As Integer

Parameters

value
Byte[]

Een matrix van bytes die de vier bytes bevat die moeten worden geconverteerd.

startIndex
Int32

De beginpositie binnen value.

Retouren

Een 32-bits ondertekend geheel getal dat wordt gevormd door vier bytes vanaf startIndex.

Uitzonderingen

startIndex is groter dan of gelijk aan de lengte van value min 3 en is kleiner dan of gelijk aan de lengte van value min 1.

value is null.

startIndex is kleiner dan nul of groter dan de lengte van value min 1.

Voorbeelden

In het volgende voorbeeld wordt de ToInt32 methode gebruikt om waarden te maken Int32 op basis van een matrix met vier bytes en van de bovenste vier bytes van een matrix met acht bytes. Ook worden de GetBytes(Int32) en ToInt32 methoden gebruikt om een Int32 waarde te afronden.

using System;

public class Example
{
   public static void Main()
   {
      // Create an Integer from a 4-byte array.
      Byte[] bytes1 = { 0xEC, 0x00, 0x00, 0x00 };
      Console.WriteLine("{0}--> 0x{1:X4} ({1:N0})", FormatBytes(bytes1),
                                      BitConverter.ToInt32(bytes1, 0));
      // Create an Integer from the upper four bytes of a byte array.
      Byte[] bytes2 = BitConverter.GetBytes(Int64.MaxValue / 2);
      Console.WriteLine("{0}--> 0x{1:X4} ({1:N0})", FormatBytes(bytes2),
                                      BitConverter.ToInt32(bytes2, 4));

      // Round-trip an integer value.
      int original = (int) Math.Pow(16, 3);
      Byte[] bytes3 = BitConverter.GetBytes(original);
      int restored = BitConverter.ToInt32(bytes3, 0);
      Console.WriteLine("0x{0:X4} ({0:N0}) --> {1} --> 0x{2:X4} ({2:N0})", original,
                        FormatBytes(bytes3), restored);
   }

   private static string FormatBytes(Byte[] bytes)
   {
       string value = "";
       foreach (var byt in bytes)
          value += string.Format("{0:X2} ", byt);

       return value;
   }
}
// The example displays the following output:
//       EC 00 00 00 --> 0x00EC (236)
//       FF FF FF FF FF FF FF 3F --> 0x3FFFFFFF (1,073,741,823)
//       0x1000 (4,096) --> 00 10 00 00  --> 0x1000 (4,096)
open System

let formatBytes (bytes: byte []) =
    bytes
    |> Array.map (fun x -> $"{x:X2}")
    |> String.concat ""

// Create an Integer from a 4-byte array.
let bytes1 = [| 0xECuy; 0x00uy; 0x00uy; 0x00uy |]
let int1  = BitConverter.ToInt32(bytes1, 0)
printfn $"{formatBytes bytes1}--> 0x{int1:X4} ({int1:N0})"

// Create an Integer from the upper four bytes of a byte array.
let bytes2 = BitConverter.GetBytes(Int64.MaxValue / 2L)
let int2 = BitConverter.ToInt32(bytes2, 4)
printfn $"{formatBytes bytes2}--> 0x{int2:X4} ({int2:N0})"

// Round-trip an integer value.
let original = pown 16 3
let bytes3 = BitConverter.GetBytes original
let restored = BitConverter.ToInt32(bytes3, 0)
printfn $"0x{original:X4} ({original:N0}) --> {formatBytes bytes3} --> 0x{restored:X4} ({restored:N0})"


// The example displays the following output:
//       EC 00 00 00 --> 0x00EC (236)
//       FF FF FF FF FF FF FF 3F --> 0x3FFFFFFF (1,073,741,823)
//       0x1000 (4,096) --> 00 10 00 00  --> 0x1000 (4,096)
Module Example
   Public Sub Main()
      ' Create an Integer from a 4-byte array.
      Dim bytes1() As Byte = { &hEC, &h00, &h00, &h00 }
      Console.WriteLine("{0}--> 0x{1:X4} ({1:N0})", FormatBytes(bytes1),
                                      BitConverter.ToInt32(bytes1, 0))
      ' Create an Integer from the upper four bytes of a byte array.
      Dim bytes2() As Byte = BitConverter.GetBytes(Int64.MaxValue \ 2)
      Console.WriteLine("{0}--> 0x{1:X4} ({1:N0})", FormatBytes(bytes2),
                                      BitConverter.ToInt32(bytes2, 4))
      
      ' Round-trip an integer value.
      Dim original As Integer = CInt(16^3)
      Dim bytes3() As Byte = BitConverter.GetBytes(original)
      Dim restored As Integer = BitConverter.ToInt32(bytes3, 0)
      Console.WriteLine("0x{0:X4} ({0:N0}) --> {1} --> 0x{2:X4} ({2:N0})", original, 
                        FormatBytes(bytes3), restored)
   End Sub
   
   Private Function FormatBytes(bytes() As Byte) As String
       Dim value As String = ""
       For Each byt In bytes
          value += String.Format("{0:X2} ", byt)
       Next
       Return value
   End Function
End Module
' The example displays the following output:
'       EC 00 00 00 --> 0x00EC (236)
'       FF FF FF FF FF FF FF 3F --> 0x3FFFFFFF (1,073,741,823)
'       0x1000 (4,096) --> 00 10 00 00  --> 0x1000 (4,096)

Opmerkingen

De ToInt32 methode converteert de bytes van index startIndex naar startIndex + 3 naar een Int32 waarde. De volgorde van bytes in de matrix moet de endianiteit van de architectuur van het computersysteem weerspiegelen. Zie de sectie Opmerkingen van BitConverter.

Zie ook

Van toepassing op

ToInt32(ReadOnlySpan<Byte>)

Converteert een bytespanne met het kenmerk Alleen-lezen naar een 32-bits geheel getal dat is ondertekend.

public:
 static int ToInt32(ReadOnlySpan<System::Byte> value);
public static int ToInt32(ReadOnlySpan<byte> value);
static member ToInt32 : ReadOnlySpan<byte> -> int
Public Shared Function ToInt32 (value As ReadOnlySpan(Of Byte)) As Integer

Parameters

value
ReadOnlySpan<Byte>

Een alleen-lezen periode met de bytes die u wilt converteren.

Retouren

Een 32-bits ondertekend geheel getal dat de geconverteerde bytes vertegenwoordigt.

Uitzonderingen

De lengte is value kleiner dan 4.

Van toepassing op