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
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

以下示例使用 ToInt32 方法从四字节数组和八字节数组的上四个字节创建 Int32 值。 它还使用 GetBytes(Int32) ToInt32 方法来往返 Int32 值。

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) 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)

方法 ToInt32 将字节从索引 startIndex 转换为 startIndex + 3 的值 Int32 。 数组中的字节顺序必须反映计算机系统体系结构的字节顺序。 有关详细信息,请参阅 的 BitConverter “备注”部分。